// Copyright (c) 2010-2014 SharpDX - Alexandre Mutel
// 
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// 
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

//------------------------------------------------------------------------------
// <auto-generated>
//     Types declaration for SharpDX.MediaFoundation.DirectX namespace.
//     This code was generated by a tool.
//     Date : 6/17/2016 5:56:08 PM
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
using System.Security;
#if DESKTOP_APP
namespace SharpDX.MediaFoundation.DirectX {

#pragma warning disable 282
#pragma warning disable 649
#pragma warning disable 419
#pragma warning disable 1587
#pragma warning disable 1574
    
    /// <summary>	
    /// <p>Contains an initialization vector (IV) for 128-bit Advanced Encryption Standard CTR mode (AES-CTR) block cipher encryption.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>For AES-CTR encyption, the <strong>pvPVPState</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.DecodeBufferDesc"/></strong> structure points to a <strong><see cref="SharpDX.MediaFoundation.DirectX.AesCtrIv"/></strong> structure.</p><p>The <strong>D3DAES_CTR_IV</strong> structure and the <strong><see cref="SharpDX.MediaFoundation.DirectX.AesCtrIv"/></strong> structure are equivalent.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_AES_CTR_IV']/*"/>	
    /// <msdn-id>ff728850</msdn-id>	
    /// <unmanaged>DXVA2_AES_CTR_IV</unmanaged>	
    /// <unmanaged-short>DXVA2_AES_CTR_IV</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 8 )]
    public  partial struct AesCtrIv {	
        
        /// <summary>	
        /// <dd> <p>The IV, in big-endian format.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_AES_CTR_IV::IV']/*"/>	
        /// <msdn-id>ff728850</msdn-id>	
        /// <unmanaged>unsigned longlong IV</unmanaged>	
        /// <unmanaged-short>unsigned longlong IV</unmanaged-short>	
        public long Iv;
        
        /// <summary>	
        /// <dd> <p>The block count, in big-endian format.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_AES_CTR_IV::Count']/*"/>	
        /// <msdn-id>ff728850</msdn-id>	
        /// <unmanaged>unsigned longlong Count</unmanaged>	
        /// <unmanaged-short>unsigned longlong Count</unmanaged-short>	
        public long Count;
    }
    
    /// <summary>	
    /// <p> </p><p>Defines a 16-bit AYUV pixel value.</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_AYUVSample16']/*"/>	
    /// <msdn-id>bb970388</msdn-id>	
    /// <unmanaged>DXVA2_AYUVSample16</unmanaged>	
    /// <unmanaged-short>DXVA2_AYUVSample16</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 2 )]
    public  partial struct AYUVSample16 {	
        
        /// <summary>	
        /// <dd> <p>Contains the Cr chroma value (also called V).</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_AYUVSample16::Cr']/*"/>	
        /// <msdn-id>bb970388</msdn-id>	
        /// <unmanaged>unsigned short Cr</unmanaged>	
        /// <unmanaged-short>unsigned short Cr</unmanaged-short>	
        public short Cr;
        
        /// <summary>	
        /// <dd> <p>Contains the Cb chroma value (also called U).</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_AYUVSample16::Cb']/*"/>	
        /// <msdn-id>bb970388</msdn-id>	
        /// <unmanaged>unsigned short Cb</unmanaged>	
        /// <unmanaged-short>unsigned short Cb</unmanaged-short>	
        public short Cb;
        
        /// <summary>	
        /// <dd> <p>Contains the luma value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_AYUVSample16::Y']/*"/>	
        /// <msdn-id>bb970388</msdn-id>	
        /// <unmanaged>unsigned short Y</unmanaged>	
        /// <unmanaged-short>unsigned short Y</unmanaged-short>	
        public short Y;
        
        /// <summary>	
        /// <dd> <p>Contains the alpha value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_AYUVSample16::Alpha']/*"/>	
        /// <msdn-id>bb970388</msdn-id>	
        /// <unmanaged>unsigned short Alpha</unmanaged>	
        /// <unmanaged-short>unsigned short Alpha</unmanaged-short>	
        public short Alpha;
    }
    
    /// <summary>	
    /// <p> </p><p>Defines an 8-bit AYUV pixel value.</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_AYUVSample8']/*"/>	
    /// <msdn-id>bb970398</msdn-id>	
    /// <unmanaged>DXVA2_AYUVSample8</unmanaged>	
    /// <unmanaged-short>DXVA2_AYUVSample8</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 1 )]
    public  partial struct AYUVSample8 {	
        
        /// <summary>	
        /// <dd> <p>Contains the Cr chroma value (also called V).</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_AYUVSample8::Cr']/*"/>	
        /// <msdn-id>bb970398</msdn-id>	
        /// <unmanaged>unsigned char Cr</unmanaged>	
        /// <unmanaged-short>unsigned char Cr</unmanaged-short>	
        public byte Cr;
        
        /// <summary>	
        /// <dd> <p>Contains the Cb chroma value (also called U).</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_AYUVSample8::Cb']/*"/>	
        /// <msdn-id>bb970398</msdn-id>	
        /// <unmanaged>unsigned char Cb</unmanaged>	
        /// <unmanaged-short>unsigned char Cb</unmanaged-short>	
        public byte Cb;
        
        /// <summary>	
        /// <dd> <p>Contains the luma value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_AYUVSample8::Y']/*"/>	
        /// <msdn-id>bb970398</msdn-id>	
        /// <unmanaged>unsigned char Y</unmanaged>	
        /// <unmanaged-short>unsigned char Y</unmanaged-short>	
        public byte Y;
        
        /// <summary>	
        /// <dd> <p>Contains the alpha value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_AYUVSample8::Alpha']/*"/>	
        /// <msdn-id>bb970398</msdn-id>	
        /// <unmanaged>unsigned char Alpha</unmanaged>	
        /// <unmanaged-short>unsigned char Alpha</unmanaged-short>	
        public byte Alpha;
    }
    
    /// <summary>	
    /// <p>Specifies how the output alpha values are calculated for blit operations when using Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_ALPHA_FILL_DATA']/*"/>	
    /// <msdn-id>dd318391</msdn-id>	
    /// <unmanaged>DXVAHD_BLT_STATE_ALPHA_FILL_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_BLT_STATE_ALPHA_FILL_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct BlitStateAlphaFillData {	
        
        /// <summary>	
        /// <dd> <p>Specifies the alpha fill mode, as a member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.AlphaFillMode"/></strong> enumeration.</p> <p>If the <strong>FeatureCaps</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.Vpdevcaps"/></strong> structure does not contain the <strong><see cref="SharpDX.MediaFoundation.DirectX.FeatureCaps.AlphaFill"/></strong> flag, the alpha fill mode must be set to <strong><see cref="SharpDX.MediaFoundation.DirectX.AlphaFillMode.Opaque"/></strong>.</p> <p>The default state value is <strong><see cref="SharpDX.MediaFoundation.DirectX.AlphaFillMode.Opaque"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_ALPHA_FILL_DATA::Mode']/*"/>	
        /// <msdn-id>dd318391</msdn-id>	
        /// <unmanaged>DXVAHD_ALPHA_FILL_MODE Mode</unmanaged>	
        /// <unmanaged-short>DXVAHD_ALPHA_FILL_MODE Mode</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.AlphaFillMode Mode;
        
        /// <summary>	
        /// <dd> <p>Zero-based index of the input stream to use for the alpha values. This member is used when the alpha fill mode is <strong><see cref="SharpDX.MediaFoundation.DirectX.AlphaFillMode.SourceStream"/></strong>; otherwise, the value is ignored. </p> <p>To get the maximum number of streams, call <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorDeviceCaps"/></strong> and check the <strong>MaxStreamStates</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.Vpdevcaps"/></strong> structure.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_ALPHA_FILL_DATA::StreamNumber']/*"/>	
        /// <msdn-id>dd318391</msdn-id>	
        /// <unmanaged>unsigned int StreamNumber</unmanaged>	
        /// <unmanaged-short>unsigned int StreamNumber</unmanaged-short>	
        public int StreamNumber;
    }
    
    /// <summary>	
    /// <p>Specifies the background color for blit operations, when using Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The background color is used to fill the target rectangle wherever no video image appears. Areas outside the target rectangle are not affected. See <strong><see cref="SharpDX.MediaFoundation.DirectX.BlitStateTargetRectangleData"/></strong>.</p><p>The color space of the background color is determined by the color space of the output. See <strong><see cref="SharpDX.MediaFoundation.DirectX.BlitStateOutputColorSpaceData"/></strong>.</p><p> The alpha value of the background color is used only when the alpha fill mode is <strong><see cref="SharpDX.MediaFoundation.DirectX.AlphaFillMode.Background"/></strong>. Otherwise, the alpha value is ignored. See <strong><see cref="SharpDX.MediaFoundation.DirectX.BlitStateAlphaFillData"/></strong>.</p><p>The default background color is full-range RGB black, with opaque alpha.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA']/*"/>	
    /// <msdn-id>dd318392</msdn-id>	
    /// <unmanaged>DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct BlitStateBackgroundColorData {	
        
        /// <summary>	
        /// <dd> <p> If <strong>TRUE</strong>, the <strong>BackgroundColor</strong> member specifies a YCbCr color. Otherwise, it specifies an RGB color.  The default device state is <strong><see cref="SharpDX.Result.False"/></strong> (RGB color).</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA::YCbCr']/*"/>	
        /// <msdn-id>dd318392</msdn-id>	
        /// <unmanaged>BOOL YCbCr</unmanaged>	
        /// <unmanaged-short>BOOL YCbCr</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool YCbCr;
        
        /// <summary>	
        /// <dd> <p>A <strong><see cref="SharpDX.MediaFoundation.DirectX.Color"/></strong> union that specifies the background color. The default state value is (0.0, 0.0, 0.0, 1.0).</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA::BackgroundColor']/*"/>	
        /// <msdn-id>dd318392</msdn-id>	
        /// <unmanaged>DXVAHD_COLOR BackgroundColor</unmanaged>	
        /// <unmanaged-short>DXVAHD_COLOR BackgroundColor</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Color BackgroundColor;
    }
    
    /// <summary>	
    /// <p>Specifies whether the output is downsampled in a  blit operation, when using Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>If the <strong>Enable</strong> member is <strong>TRUE</strong>, the device downsamples the composed target rectangle  to the size given in the <strong>Size</strong> member, and then scales it back to the size of the target rectangle.</p><p>The width and height of <strong>Size</strong> must be greater than zero. If the size is larger than the target rectangle, downsampling does not occur.</p><p>To use this state, the device must support downsampling, indicated by the <strong><see cref="SharpDX.MediaFoundation.DirectX.FeatureCaps.Constriction"/></strong> capability flag. To query for this capability, call <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorDeviceCaps"/></strong>. If the device supports downsampling, it sets the <strong><see cref="SharpDX.MediaFoundation.DirectX.FeatureCaps.Constriction"/></strong> flag in the <strong>FeatureCaps</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.Vpdevcaps"/></strong> structure. </p><p>If the device does not support downsampling, the <strong><see cref="SharpDX.MediaFoundation.DirectX.HDVideoProcessor.SetVideoProcessBltState"/></strong> method fails for this state.</p><p>Downsampling is sometimes used to reduce the quality of premium content when other forms of content protection are not available.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_CONSTRICTION_DATA']/*"/>	
    /// <msdn-id>dd318394</msdn-id>	
    /// <unmanaged>DXVAHD_BLT_STATE_CONSTRICTION_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_BLT_STATE_CONSTRICTION_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct BlitStateConstrictionData {	
        
        /// <summary>	
        /// <dd> <p>If <strong>TRUE</strong>, downsampling is enabled<strong></strong>. Otherwise, downsampling is disabled and the <strong>Size</strong> member is ignored. The default state value is <strong><see cref="SharpDX.Result.False"/></strong> (downsampling is disabled).</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_CONSTRICTION_DATA::Enable']/*"/>	
        /// <msdn-id>dd318394</msdn-id>	
        /// <unmanaged>BOOL Enable</unmanaged>	
        /// <unmanaged-short>BOOL Enable</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Enable;
        
        /// <summary>	
        /// <dd> <p>The sampling size. The default value is (1,1).</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_CONSTRICTION_DATA::Size']/*"/>	
        /// <msdn-id>dd318394</msdn-id>	
        /// <unmanaged>SIZE Size</unmanaged>	
        /// <unmanaged-short>SIZE Size</unmanaged-short>	
        public SharpDX.Size2 Size;
    }
    
    /// <summary>	
    /// <p>Specifies the output color space for blit operations, when using Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The <strong>RGB_Range</strong> member applies to RGB output, while the <strong>YCbCr_Matrix</strong> and <strong>YCbCr_xvYCC</strong> members apply to YCbCr (YUV) output. If the device performs color-space conversion on the background color, it uses the values that apply to  both color spaces.</p><p>Extended YCbCr can be used with either transfer matrix. Extended YCbCr does not change the black point or white point?the black point is still 16 and the white point is still 235. However, extended YCbCr explicitly allows blacker-than-black values in the range 1?15, and whiter-than-white values in the range 236?254. When extended YCbCr is used, the driver should not clip the luma values to the nominal 16?235 range.</p><p>If the device supports extended YCbCr, it sets the <strong><see cref="SharpDX.MediaFoundation.DirectX.DeviceCaps.XvYCC"/></strong> capability flag in the <strong>DeviceCaps</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.Vpdevcaps"/></strong> structure. Otherwise, the device ignores the value of the <strong>YCbCr_xvYCC</strong> member and treats all YCbCr output as conventional YCbCr. To get the device's capabilities, call <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorDeviceCaps"/></strong>.</p><p>If the output format is a wide-gamut RGB format, output might fall outside the nominal [0...1] range of sRGB. This is particularly true if one or more input streams use extended YCbCr.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA']/*"/>	
    /// <msdn-id>dd318395</msdn-id>	
    /// <unmanaged>DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Explicit, Pack = 0 )]
    public  partial struct BlitStateOutputColorSpaceData {	
        
        /// <summary>	
        /// <dd> <p>Specifies whether the output is intended for playback or video processing (such as editing or authoring). The device can optimize the processing based on the type. The default state value is 0 (playback). </p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td> <dl> <dt>0</dt> </dl> </td><td> <p>Playback.</p> </td></tr> <tr><td> <dl> <dt>1</dt> </dl> </td><td> <p>Video processing.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA::Usage']/*"/>	
        /// <msdn-id>dd318395</msdn-id>	
        /// <unmanaged>unsigned int Usage</unmanaged>	
        /// <unmanaged-short>unsigned int Usage</unmanaged-short>	
        public bool  Usage { 
            get { 
                return 0 != ((_Usage >> 0)  &  1);
            }
            set { 
                _Usage = (int)((_Usage & ~( 1 << 0)) | ( ( (value?1:0) & 1) << 0));
            }
        }
        [FieldOffset(0)]
        internal int _Usage;
		
        
        /// <summary>	
        /// <dd> <p>Specifies the RGB color range. The default state value is 0 (full range).</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td> <dl> <dt>0</dt> </dl> </td><td> <p>Full range (0-255).</p> </td></tr> <tr><td> <dl> <dt>1</dt> </dl> </td><td> <p>Limited range (16-235).</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA::RGB_Range']/*"/>	
        /// <msdn-id>dd318395</msdn-id>	
        /// <unmanaged>unsigned int RGB_Range</unmanaged>	
        /// <unmanaged-short>unsigned int RGB_Range</unmanaged-short>	
        public bool  RgbRange { 
            get { 
                return 0 != ((_RgbRange >> 1)  &  1);
            }
            set { 
                _RgbRange = (int)((_RgbRange & ~( 1 << 1)) | ( ( (value?1:0) & 1) << 1));
            }
        }
        [FieldOffset(0)]
        internal int _RgbRange;
		
        
        /// <summary>	
        /// <dd> <p>Specifies the YCbCr transfer matrix. The default state value is 0 (BT.601).</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td> <dl> <dt>0</dt> </dl> </td><td> <p>ITU-R BT.601.</p> </td></tr> <tr><td> <dl> <dt>1</dt> </dl> </td><td> <p>ITU-R BT.709.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA::YCbCr_Matrix']/*"/>	
        /// <msdn-id>dd318395</msdn-id>	
        /// <unmanaged>unsigned int YCbCr_Matrix</unmanaged>	
        /// <unmanaged-short>unsigned int YCbCr_Matrix</unmanaged-short>	
        public bool  YCbCrMatrix { 
            get { 
                return 0 != ((_YCbCrMatrix >> 2)  &  1);
            }
            set { 
                _YCbCrMatrix = (int)((_YCbCrMatrix & ~( 1 << 2)) | ( ( (value?1:0) & 1) << 2));
            }
        }
        [FieldOffset(0)]
        internal int _YCbCrMatrix;
		
        
        /// <summary>	
        /// <dd> <p>Specifies whether the output uses conventional YCbCr or extended YCbCr (xvYCC). The default state value is zero (conventional YCbCr).</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td> <dl> <dt>0</dt> </dl> </td><td> <p>Conventional YCbCr.</p> </td></tr> <tr><td> <dl> <dt>1</dt> </dl> </td><td> <p>Extended YCbCr (xvYCC).</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA::YCbCr_xvYCC']/*"/>	
        /// <msdn-id>dd318395</msdn-id>	
        /// <unmanaged>unsigned int YCbCr_xvYCC</unmanaged>	
        /// <unmanaged-short>unsigned int YCbCr_xvYCC</unmanaged-short>	
        public bool  YCbCrXvYCC { 
            get { 
                return 0 != ((_YCbCrXvYCC >> 3)  &  1);
            }
            set { 
                _YCbCrXvYCC = (int)((_YCbCrXvYCC & ~( 1 << 3)) | ( ( (value?1:0) & 1) << 3));
            }
        }
        [FieldOffset(0)]
        internal int _YCbCrXvYCC;
		
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA::Reserved']/*"/>	
        /// <msdn-id>dd318395</msdn-id>	
        /// <unmanaged>unsigned int Reserved</unmanaged>	
        /// <unmanaged-short>unsigned int Reserved</unmanaged-short>	
        public int  Reserved { 
            get { 
                return (int)((_Reserved >> 4)  &  268435455);
            }
            set { 
                _Reserved = (int)((_Reserved & ~( 268435455 << 4)) | ( (value & 268435455) << 4));
            }
        }
        [FieldOffset(0)]
        internal int _Reserved;
		
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA::Value']/*"/>	
        /// <msdn-id>dd318395</msdn-id>	
        /// <unmanaged>unsigned int Value</unmanaged>	
        /// <unmanaged-short>unsigned int Value</unmanaged-short>	
        [FieldOffset(0)]
        public int Value;
    }
    
    /// <summary>	
    /// <p>Contains data for a private blit state for Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>Use this structure for proprietary or device-specific state parameters. </p><p>The caller allocates the <strong>pData</strong> array. Set the  <strong>DataSize</strong> member to the size of the array in bytes. When retrieving the state data, you can set <strong>pData</strong> to <strong><c>null</c></strong> to get the size of the data. The device will return the size in the <strong>DataSize</strong> member.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_PRIVATE_DATA']/*"/>	
    /// <msdn-id>dd318397</msdn-id>	
    /// <unmanaged>DXVAHD_BLT_STATE_PRIVATE_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_BLT_STATE_PRIVATE_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct BlitStatePrivateData {	
        
        /// <summary>	
        /// <dd> <p>A <see cref="System.Guid"/> that identifies the private state. The meaning of this value is defined by the device. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_PRIVATE_DATA::Guid']/*"/>	
        /// <msdn-id>dd318397</msdn-id>	
        /// <unmanaged>GUID Guid</unmanaged>	
        /// <unmanaged-short>GUID Guid</unmanaged-short>	
        public System.Guid Guid;
        
        /// <summary>	
        /// <dd> <p>The size, in bytes, of the buffer pointed to by the <strong>pData</strong> member.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_PRIVATE_DATA::DataSize']/*"/>	
        /// <msdn-id>dd318397</msdn-id>	
        /// <unmanaged>unsigned int DataSize</unmanaged>	
        /// <unmanaged-short>unsigned int DataSize</unmanaged-short>	
        public int DataSize;
        
        /// <summary>	
        /// <dd> <p>A reference to a buffer that contains the private state data. The DXVA-HD runtime passes this buffer directly to the device without validation.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_PRIVATE_DATA::pData']/*"/>	
        /// <msdn-id>dd318397</msdn-id>	
        /// <unmanaged>void* pData</unmanaged>	
        /// <unmanaged-short>void pData</unmanaged-short>	
        public System.IntPtr PData;
    }
    
    /// <summary>	
    /// <p>Specifies the target rectangle for blitting, when using Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_TARGET_RECT_DATA']/*"/>	
    /// <msdn-id>dd318400</msdn-id>	
    /// <unmanaged>DXVAHD_BLT_STATE_TARGET_RECT_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_BLT_STATE_TARGET_RECT_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct BlitStateTargetRectangleData {	
        
        /// <summary>	
        /// <dd> <p>Specifies whether to use the target rectangle. The default state value is <strong><see cref="SharpDX.Result.False"/></strong>.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong>TRUE</strong></dt> </dl> </td><td> <p>Use the target rectangle specified by the <strong>TargetRect</strong> member.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Result.False"/></strong></dt> </dl> </td><td> <p>Use the entire destination surface as the target rectangle. Ignore the <strong>TargetRect</strong> member.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_TARGET_RECT_DATA::Enable']/*"/>	
        /// <msdn-id>dd318400</msdn-id>	
        /// <unmanaged>BOOL Enable</unmanaged>	
        /// <unmanaged-short>BOOL Enable</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Enable;
        
        /// <summary>	
        /// <dd> <p>Specifies the <em>target rectangle</em>. The target rectangle is the area within the destination surface where the output will be drawn. The target rectangle is given in pixel coordinates, relative to the destination surface. The default state value is an empty rectangle, (0, 0, 0, 0).</p> <p>If the <strong>Enable</strong> member is <strong><see cref="SharpDX.Result.False"/></strong>, the <strong>TargetRect</strong> member is ignored. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_BLT_STATE_TARGET_RECT_DATA::TargetRect']/*"/>	
        /// <msdn-id>dd318400</msdn-id>	
        /// <unmanaged>RECT TargetRect</unmanaged>	
        /// <unmanaged-short>RECT TargetRect</unmanaged-short>	
        public SharpDX.Rectangle TargetRect;
    }
    
    /// <summary>	
    /// <p>Defines a color value for Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>This union can represent both RGB and YCbCr colors. The interpretation of the union depends on the context.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_COLOR']/*"/>	
    /// <msdn-id>dd318402</msdn-id>	
    /// <unmanaged>DXVAHD_COLOR</unmanaged>	
    /// <unmanaged-short>DXVAHD_COLOR</unmanaged-short>	
    [StructLayout(LayoutKind.Explicit, Pack = 0 )]
    public  partial struct Color {	
        
        /// <summary>	
        /// <dd> <p>A <strong><see cref="SharpDX.MediaFoundation.DirectX.ColorRgba"/></strong> structure that contains an RGB color value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_COLOR::RGB']/*"/>	
        /// <msdn-id>dd318402</msdn-id>	
        /// <unmanaged>DXVAHD_COLOR_RGBA RGB</unmanaged>	
        /// <unmanaged-short>DXVAHD_COLOR_RGBA RGB</unmanaged-short>	
        [FieldOffset(0)]
        public SharpDX.MediaFoundation.DirectX.ColorRgba Rgb;
        
        /// <summary>	
        /// <dd> <p>A <strong><see cref="SharpDX.MediaFoundation.DirectX.ColorYCbCrA"/></strong> structure that contains a YCbCr color value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_COLOR::YCbCr']/*"/>	
        /// <msdn-id>dd318402</msdn-id>	
        /// <unmanaged>DXVAHD_COLOR_YCbCrA YCbCr</unmanaged>	
        /// <unmanaged-short>DXVAHD_COLOR_YCbCrA YCbCr</unmanaged-short>	
        [FieldOffset(0)]
        public SharpDX.MediaFoundation.DirectX.ColorYCbCrA YCbCr;
    }
    
    /// <summary>	
    /// <p>Specifies an RGB color value.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The RGB values have a nominal range of [0...1]. For an RGB format with  <em>n</em> bits per channel, the value of each color component is calculated as follows:</p><p><code>val = f * ((1 &lt;&lt; n)-1)</code></p><p>For example, for RGB-32 (8 bits per channel), <code>val = BYTE(f * 255.0)</code>.</p><p>For full-range RGB, reference black is (0.0, 0.0, 0.0), which corresponds to (0, 0, 0) in an 8-bit representation. For limited-range RGB, reference black is (0.0625, 0.0625, 0.0625), which corresponds to (16, 16, 16) in an 8-bit representation. For wide-gamut formats, the values might fall outside of the [0...1] range.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_COLOR_RGBA']/*"/>	
    /// <msdn-id>dd318405</msdn-id>	
    /// <unmanaged>DXVAHD_COLOR_RGBA</unmanaged>	
    /// <unmanaged-short>DXVAHD_COLOR_RGBA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct ColorRgba {	
        
        /// <summary>	
        /// <dd> <p>The red value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_COLOR_RGBA::R']/*"/>	
        /// <msdn-id>dd318405</msdn-id>	
        /// <unmanaged>float R</unmanaged>	
        /// <unmanaged-short>float R</unmanaged-short>	
        public float R;
        
        /// <summary>	
        /// <dd> <p>The green value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_COLOR_RGBA::G']/*"/>	
        /// <msdn-id>dd318405</msdn-id>	
        /// <unmanaged>float G</unmanaged>	
        /// <unmanaged-short>float G</unmanaged-short>	
        public float G;
        
        /// <summary>	
        /// <dd> <p>The blue value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_COLOR_RGBA::B']/*"/>	
        /// <msdn-id>dd318405</msdn-id>	
        /// <unmanaged>float B</unmanaged>	
        /// <unmanaged-short>float B</unmanaged-short>	
        public float B;
        
        /// <summary>	
        /// <dd> <p>The alpha value. Values range from 0 (transparent) to 1 (opaque).</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_COLOR_RGBA::A']/*"/>	
        /// <msdn-id>dd318405</msdn-id>	
        /// <unmanaged>float A</unmanaged>	
        /// <unmanaged-short>float A</unmanaged-short>	
        public float A;
    }
    
    /// <summary>	
    /// <p>Defines a color value for Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>This union can represent both RGB and YCbCr colors. The interpretation of the union depends on the context.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_COLOR_YCbCrA']/*"/>	
    /// <msdn-id>dd318402</msdn-id>	
    /// <unmanaged>DXVAHD_COLOR_YCbCrA</unmanaged>	
    /// <unmanaged-short>DXVAHD_COLOR_YCbCrA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct ColorYCbCrA {	
        
        /// <summary>	
        /// <dd> <p>A <strong><see cref="SharpDX.MediaFoundation.DirectX.ColorRgba"/></strong> structure that contains an RGB color value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_COLOR_YCbCrA::Y']/*"/>	
        /// <msdn-id>dd318402</msdn-id>	
        /// <unmanaged>float Y</unmanaged>	
        /// <unmanaged-short>float Y</unmanaged-short>	
        public float Y;
        
        /// <summary>	
        /// <dd> <p>A <strong><see cref="SharpDX.MediaFoundation.DirectX.ColorYCbCrA"/></strong> structure that contains a YCbCr color value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_COLOR_YCbCrA::Cb']/*"/>	
        /// <msdn-id>dd318402</msdn-id>	
        /// <unmanaged>float Cb</unmanaged>	
        /// <unmanaged-short>float Cb</unmanaged-short>	
        public float Cb;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_COLOR_YCbCrA::Cr']/*"/>	
        /// <msdn-id>dd318402</msdn-id>	
        /// <unmanaged>float Cr</unmanaged>	
        /// <unmanaged-short>float Cr</unmanaged-short>	
        public float Cr;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_COLOR_YCbCrA::A']/*"/>	
        /// <msdn-id>dd318402</msdn-id>	
        /// <unmanaged>float A</unmanaged>	
        /// <unmanaged-short>float A</unmanaged-short>	
        public float A;
    }
    
    /// <summary>	
    /// <p> Describes the configuration of a DXVA decoder device. </p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode']/*"/>	
    /// <msdn-id>ms694823</msdn-id>	
    /// <unmanaged>DXVA2_ConfigPictureDecode</unmanaged>	
    /// <unmanaged-short>DXVA2_ConfigPictureDecode</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct ConfigPictureDecode {	
        
        /// <summary>	
        /// <dd> <p> Defines the encryption protocol type for bit-stream data buffers. If no encryption is applied, the value is DXVA_NoEncrypt. If <strong>ConfigBitstreamRaw</strong> is 0, the value must be DXVA_NoEncrypt. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::guidConfigBitstreamEncryption']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>GUID guidConfigBitstreamEncryption</unmanaged>	
        /// <unmanaged-short>GUID guidConfigBitstreamEncryption</unmanaged-short>	
        public System.Guid GuidConfigBitstreamEncryption;
        
        /// <summary>	
        /// <dd> <p>Defines the encryption protocol type for macroblock control data buffers. If no encryption is applied, the value is DXVA_NoEncrypt. If <strong>ConfigBitstreamRaw</strong> is 1, the value must be DXVA_NoEncrypt. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::guidConfigMBcontrolEncryption']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>GUID guidConfigMBcontrolEncryption</unmanaged>	
        /// <unmanaged-short>GUID guidConfigMBcontrolEncryption</unmanaged-short>	
        public System.Guid GuidConfigMBcontrolEncryption;
        
        /// <summary>	
        /// <dd> <p>Defines the encryption protocol type for residual difference decoding data buffers (buffers containing spatial-domain data or sets of transform-domain coefficients for accelerator-based IDCT). If no encryption is applied, the value is DXVA_NoEncrypt. If <strong>ConfigBitstreamRaw</strong> is 1, the value must be DXVA_NoEncrypt. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::guidConfigResidDiffEncryption']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>GUID guidConfigResidDiffEncryption</unmanaged>	
        /// <unmanaged-short>GUID guidConfigResidDiffEncryption</unmanaged-short>	
        public System.Guid GuidConfigResidDiffEncryption;
        
        /// <summary>	
        /// <dd> <p>Indicates whether the host-decoder sends raw bit-stream data. If the value is 1, the data for the pictures will be sent in bit-stream buffers as raw bit-stream content. If the value is 0, picture data will be sent using macroblock control command buffers. If either <strong>ConfigResidDiffHost</strong> or <strong>ConfigResidDiffAccelerator</strong> is 1, the value must be 0. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::ConfigBitstreamRaw']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>unsigned int ConfigBitstreamRaw</unmanaged>	
        /// <unmanaged-short>unsigned int ConfigBitstreamRaw</unmanaged-short>	
        public int ConfigBitstreamRaw;
        
        /// <summary>	
        /// <dd> <p>Specifies whether macroblock control commands are in raster scan order or in arbitrary order. If the value is 1, the macroblock control commands within each macroblock control command buffer are in raster-scan order. If the value is 0, the order is arbitrary. For some types of bit streams, forcing raster order either greatly increases the number of required macroblock control buffers that must be processed, or requires host reordering of the control information. Therefore, supporting arbitrary order can be more efficient. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::ConfigMBcontrolRasterOrder']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>unsigned int ConfigMBcontrolRasterOrder</unmanaged>	
        /// <unmanaged-short>unsigned int ConfigMBcontrolRasterOrder</unmanaged-short>	
        public int ConfigMBcontrolRasterOrder;
        
        /// <summary>	
        /// <dd> <p>Contains the host residual difference configuration. If the value is 1, some residual difference decoding data may be sent as blocks in the spatial domain from the host. If the value is 0, spatial domain data will not be sent. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::ConfigResidDiffHost']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>unsigned int ConfigResidDiffHost</unmanaged>	
        /// <unmanaged-short>unsigned int ConfigResidDiffHost</unmanaged-short>	
        public int ConfigResidDiffHost;
        
        /// <summary>	
        /// <dd> <p>Indicates the word size used to represent residual difference spatial-domain blocks for predicted (non-intra) pictures when using host-based residual difference decoding. </p> <p>If <strong>ConfigResidDiffHost</strong> is 1 and <strong>ConfigSpatialResid8</strong> is 1, the host will send residual difference spatial-domain blocks for non-intra macroblocks using 8-bit signed samples and for intra macroblocks in predicted (non-intra) pictures in a format that depends on the value of <strong>ConfigIntraResidUnsigned</strong>: </p> <ul> <li> If <strong>ConfigIntraResidUnsigned</strong> is 0, spatial-domain blocks for intra macroblocks are sent as 8-bit signed integer values relative to a constant reference value of 2^(BPP?1). </li> <li> If <strong>ConfigIntraResidUnsigned</strong> is 1, spatial-domain blocks for intra macroblocks are sent as 8-bit unsigned integer values relative to a constant reference value of 0. </li> </ul> <p> If <strong>ConfigResidDiffHost</strong> is 1 and <strong>ConfigSpatialResid8</strong> is 0, the host will send residual difference spatial-domain blocks of data for non-intra macroblocks using 16- bit signed samples and for intra macroblocks in predicted (non-intra) pictures in a format that depends on the value of <strong>ConfigIntraResidUnsigned</strong>: </p> <ul> <li> If <strong>ConfigIntraResidUnsigned</strong> is 0, spatial domain blocks for intra macroblocks are sent as 16-bit signed integer values relative to a constant reference value of 2^(BPP?1). </li> <li> If <strong>ConfigIntraResidUnsigned</strong> is 1, spatial domain blocks for intra macroblocks are sent as 16-bit unsigned integer values relative to a constant reference value of 0. </li> </ul> <p> If <strong>ConfigResidDiffHost</strong> is 0, <strong>ConfigSpatialResid8</strong> must be 0. </p> <p> For intra pictures, spatial-domain blocks must be sent using 8-bit samples if bits-per-pixel (BPP) is 8, and using 16-bit samples if BPP &gt; 8. If <strong>ConfigIntraResidUnsigned</strong> is 0, these samples are sent as signed integer values relative to a constant reference value of 2^(BPP?1), and if <strong>ConfigIntraResidUnsigned</strong> is 1, these samples are sent as unsigned integer values relative to a constant reference value of 0. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::ConfigSpatialResid8']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>unsigned int ConfigSpatialResid8</unmanaged>	
        /// <unmanaged-short>unsigned int ConfigSpatialResid8</unmanaged-short>	
        public int ConfigSpatialResid8;
        
        /// <summary>	
        /// <dd> <p> If the value is 1, 8-bit difference overflow blocks are subtracted rather than added. The value must be 0 unless <strong>ConfigSpatialResid8</strong> is 1. </p> <p> The ability to subtract differences rather than add them enables 8-bit difference decoding to be fully compliant with the full ?255 range of values required in video decoder specifications, because +255 cannot be represented as the addition of two signed 8-bit numbers, but any number in the range ?255 can be represented as the difference between two signed 8-bit numbers (+255 = +127 minus ?128).</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::ConfigResid8Subtraction']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>unsigned int ConfigResid8Subtraction</unmanaged>	
        /// <unmanaged-short>unsigned int ConfigResid8Subtraction</unmanaged-short>	
        public int ConfigResid8Subtraction;
        
        /// <summary>	
        /// <dd> <p> If the value is 1, spatial-domain blocks for intra macroblocks must be clipped to an 8-bit range on the host and spatial-domain blocks for non-intra macroblocks must be clipped to a 9-bit range on the host. If the value is 0, no such clipping is necessary by the host. </p> <p> The value must be 0 unless <strong>ConfigSpatialResid8</strong> is 0 and <strong>ConfigResidDiffHost</strong> is 1. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::ConfigSpatialHost8or9Clipping']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>unsigned int ConfigSpatialHost8or9Clipping</unmanaged>	
        /// <unmanaged-short>unsigned int ConfigSpatialHost8or9Clipping</unmanaged-short>	
        public int ConfigSpatialHost8or9Clipping;
        
        /// <summary>	
        /// <dd> <p> If the value is 1, any spatial-domain residual difference data must be sent in a chrominance-interleaved form matching the YUV format chrominance interleaving pattern. The value must be 0 unless <strong>ConfigResidDiffHost</strong> is 1 and the YUV format is NV12 or NV21. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::ConfigSpatialResidInterleaved']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>unsigned int ConfigSpatialResidInterleaved</unmanaged>	
        /// <unmanaged-short>unsigned int ConfigSpatialResidInterleaved</unmanaged-short>	
        public int ConfigSpatialResidInterleaved;
        
        /// <summary>	
        /// <dd> <p> Indicates the method of representation of spatial-domain blocks of residual difference data for intra blocks when using host-based difference decoding. </p> <p> If <strong>ConfigResidDiffHost</strong> is 1 and <strong>ConfigIntraResidUnsigned</strong> is 0, spatial-domain residual difference data blocks for intra macroblocks must be sent as follows: </p> <ul> <li> In a non-intra picture, if <strong>ConfigSpatialResid8</strong> is 0, the spatial-domain residual difference data blocks for intra macroblocks are sent as 16-bit signed integer values relative to a constant reference value of 2^(BPP?1). </li> <li> In a non-intra picture, if <strong>ConfigSpatialResid8</strong> is 1, the spatial-domain residual difference data blocks for intra macroblocks are sent as 8-bit signed integer values relative to a constant reference value of 2^(BPP?1). </li> <li> In an intra picture, if BPP is 8, the spatial-domain residual difference data blocks for intra macroblocks are sent as 8-bit signed integer values relative to a constant reference value of 2^(BPP?1), regardless of the value of <strong>ConfigSpatialResid8</strong>. </li> </ul> <p> If <strong>ConfigResidDiffHost</strong> is 1 and <strong>ConfigIntraResidUnsigned</strong> is 1, spatial-domain residual difference data blocks for intra macroblocks must be sent as follows: </p> <ul> <li> In a non-intra picture, if <strong>ConfigSpatialResid8</strong> is 0, the spatial-domain residual difference data blocks for intra macroblocks must be sent as 16-bit unsigned integer values relative to a constant reference value of 0. </li> <li> In a non-intra picture, if <strong>ConfigSpatialResid8</strong> is 1, the spatial-domain residual difference data blocks for intra macroblocks are sent as 8-bit unsigned integer values relative to a constant reference value of 0. </li> <li> In an intra picture, if BPP is 8, the spatial-domain residual difference data blocks for intra macroblocks are sent as 8-bit unsigned integer values relative to a constant reference value of 0, regardless of the value of <strong>ConfigSpatialResid8</strong>. </li> </ul> <p> The value of the member must be 0 unless <strong>ConfigResidDiffHost</strong> is 1. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::ConfigIntraResidUnsigned']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>unsigned int ConfigIntraResidUnsigned</unmanaged>	
        /// <unmanaged-short>unsigned int ConfigIntraResidUnsigned</unmanaged-short>	
        public int ConfigIntraResidUnsigned;
        
        /// <summary>	
        /// <dd> <p> If the value is 1, transform-domain blocks of coefficient data may be sent from the host for accelerator-based IDCT. If the value is 0, accelerator-based IDCT will not be used. If both <strong>ConfigResidDiffHost</strong> and <strong>ConfigResidDiffAccelerator</strong> are 1, this indicates that some residual difference decoding will be done on the host and some on the accelerator, as indicated by macroblock-level control commands. </p> <p> The value must be 0 if <strong>ConfigBitstreamRaw</strong> is 1. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::ConfigResidDiffAccelerator']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>unsigned int ConfigResidDiffAccelerator</unmanaged>	
        /// <unmanaged-short>unsigned int ConfigResidDiffAccelerator</unmanaged-short>	
        public int ConfigResidDiffAccelerator;
        
        /// <summary>	
        /// <dd> <p> If the value is 1, the inverse scan for transform-domain block processing will be performed on the host, and absolute indices will be sent instead for any transform coefficients. If the value is 0, the inverse scan will be performed on the accelerator. </p> <p> The value must be 0 if <strong>ConfigResidDiffAccelerator</strong> is 0 or if <strong>Config4GroupedCoefs</strong> is 1. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::ConfigHostInverseScan']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>unsigned int ConfigHostInverseScan</unmanaged>	
        /// <unmanaged-short>unsigned int ConfigHostInverseScan</unmanaged-short>	
        public int ConfigHostInverseScan;
        
        /// <summary>	
        /// <dd> <p> If the value is 1, the IDCT specified in Annex W of ITU-T Recommendation H.263 is used. If the value is 0, any compliant IDCT can be used for off-host IDCT. </p> <p> The H.263 annex does not comply with the IDCT requirements of MPEG-2 corrigendum 2, so the value must not be 1 for use with MPEG-2 video. </p> <p> The value must be 0 if <strong>ConfigResidDiffAccelerator</strong> is 0, indicating purely host-based residual difference decoding. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::ConfigSpecificIDCT']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>unsigned int ConfigSpecificIDCT</unmanaged>	
        /// <unmanaged-short>unsigned int ConfigSpecificIDCT</unmanaged-short>	
        public int ConfigSpecificIDCT;
        
        /// <summary>	
        /// <dd> <p> If the value is 1, transform coefficients for off-host IDCT will be sent using the <strong>DXVA_TCoef4Group</strong> structure. If the value is 0, the <strong>DXVA_TCoefSingle</strong> structure is used. The value must be 0 if <strong>ConfigResidDiffAccelerator</strong> is 0 or if <strong>ConfigHostInverseScan</strong> is 1. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::Config4GroupedCoefs']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>unsigned int Config4GroupedCoefs</unmanaged>	
        /// <unmanaged-short>unsigned int Config4GroupedCoefs</unmanaged-short>	
        public int Config4GroupedCoefs;
        
        /// <summary>	
        /// <dd> <p> Specifies how many frames the decoder device processes at any one time. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::ConfigMinRenderTargetBuffCount']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>unsigned short ConfigMinRenderTargetBuffCount</unmanaged>	
        /// <unmanaged-short>unsigned short ConfigMinRenderTargetBuffCount</unmanaged-short>	
        public short ConfigMinRenderTargetBuffCount;
        
        /// <summary>	
        /// <dd> <p> Contains decoder-specific configuration information. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ConfigPictureDecode::ConfigDecoderSpecific']/*"/>	
        /// <msdn-id>ms694823</msdn-id>	
        /// <unmanaged>unsigned short ConfigDecoderSpecific</unmanaged>	
        /// <unmanaged-short>unsigned short ConfigDecoderSpecific</unmanaged-short>	
        public short ConfigDecoderSpecific;
    }
    
    /// <summary>	
    /// <p>Describes a video stream for a Microsoft DirectX Video Acceleration High Definition (DXVA-HD) video processor.</p><p>The display driver can use the information in this structure to optimize the capabilities of the video processor. For example, some capabilities might not be exposed for high-definition (HD) content, for performance reasons. </p>	
    /// </summary>	
    /// <remarks>	
    /// <p> Frame rates are expressed as ratios. For example, 30 frames per second (fps) is expressed as 30:1, and 29.97 fps is expressed as 30000/1001. For interlaced content, a frame consists of two fields, so that the frame rate is half the field rate. </p><p> If the application will composite two or more input streams, use the largest stream for the values of <strong>InputWidth</strong> and <strong>InputHeight</strong>.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_CONTENT_DESC']/*"/>	
    /// <msdn-id>dd318409</msdn-id>	
    /// <unmanaged>DXVAHD_CONTENT_DESC</unmanaged>	
    /// <unmanaged-short>DXVAHD_CONTENT_DESC</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct ContentDescription {	
        
        /// <summary>	
        /// <dd> <p>A member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.FrameFormat"/></strong> enumeration that describes how the video stream is interlaced.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_CONTENT_DESC::InputFrameFormat']/*"/>	
        /// <msdn-id>dd318409</msdn-id>	
        /// <unmanaged>DXVAHD_FRAME_FORMAT InputFrameFormat</unmanaged>	
        /// <unmanaged-short>DXVAHD_FRAME_FORMAT InputFrameFormat</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.FrameFormat InputFrameFormat;
        
        /// <summary>	
        /// <dd> <p>The frame rate of the input video stream, specified as a <strong><see cref="SharpDX.MediaFoundation.DirectX.Rational"/></strong> structure.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_CONTENT_DESC::InputFrameRate']/*"/>	
        /// <msdn-id>dd318409</msdn-id>	
        /// <unmanaged>DXVAHD_RATIONAL InputFrameRate</unmanaged>	
        /// <unmanaged-short>DXVAHD_RATIONAL InputFrameRate</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Rational InputFrameRate;
        
        /// <summary>	
        /// <dd> <p>The width of the input frames, in pixels.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_CONTENT_DESC::InputWidth']/*"/>	
        /// <msdn-id>dd318409</msdn-id>	
        /// <unmanaged>unsigned int InputWidth</unmanaged>	
        /// <unmanaged-short>unsigned int InputWidth</unmanaged-short>	
        public int InputWidth;
        
        /// <summary>	
        /// <dd> <p>The height of the input frames, in pixels.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_CONTENT_DESC::InputHeight']/*"/>	
        /// <msdn-id>dd318409</msdn-id>	
        /// <unmanaged>unsigned int InputHeight</unmanaged>	
        /// <unmanaged-short>unsigned int InputHeight</unmanaged-short>	
        public int InputHeight;
        
        /// <summary>	
        /// <dd> <p>The frame rate of the output video stream, specified as a <strong><see cref="SharpDX.MediaFoundation.DirectX.Rational"/></strong> structure.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_CONTENT_DESC::OutputFrameRate']/*"/>	
        /// <msdn-id>dd318409</msdn-id>	
        /// <unmanaged>DXVAHD_RATIONAL OutputFrameRate</unmanaged>	
        /// <unmanaged-short>DXVAHD_RATIONAL OutputFrameRate</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Rational OutputFrameRate;
        
        /// <summary>	
        /// <dd> <p>The width of the output frames, in pixels.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_CONTENT_DESC::OutputWidth']/*"/>	
        /// <msdn-id>dd318409</msdn-id>	
        /// <unmanaged>unsigned int OutputWidth</unmanaged>	
        /// <unmanaged-short>unsigned int OutputWidth</unmanaged-short>	
        public int OutputWidth;
        
        /// <summary>	
        /// <dd> <p>The height of the output frames, in pixels.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_CONTENT_DESC::OutputHeight']/*"/>	
        /// <msdn-id>dd318409</msdn-id>	
        /// <unmanaged>unsigned int OutputHeight</unmanaged>	
        /// <unmanaged-short>unsigned int OutputHeight</unmanaged-short>	
        public int OutputHeight;
    }
    
    /// <summary>	
    /// <p>Specifies a custom rate for frame-rate conversion or inverse telecine (IVTC).</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The <strong>CustomRate</strong> member gives the rate conversion factor, while the remaining members define the pattern of input and output samples. </p><p>Here are some example uses for this structure:</p><ul> <li> <p>Frame rate conversion from 60p to 120p (doubling the frame rate).</p> <ul> <li><strong>CustomRate</strong>: 2/1</li> <li><strong>OutputFrames</strong>: 2</li> <li><strong>InputInterlaced</strong>: <strong><see cref="SharpDX.Result.False"/></strong></li> <li><strong>InputFramesOrFields</strong>: 1</li> </ul> </li> <li> <p>Reverse 2:3 pulldown (IVTC) from 60i to 24p.</p> <ul> <li><strong>CustomRate</strong>: 4/5</li> <li><strong>OutputFrames</strong>: 4</li> <li><strong>InputInterlaced</strong>: <strong>TRUE</strong></li> <li><strong>InputFramesOrFields</strong>: 10</li> </ul> <p>(Ten interlaced fields are converted into four progressive frames.)</p> </li> </ul>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_CUSTOM_RATE_DATA']/*"/>	
    /// <msdn-id>dd318414</msdn-id>	
    /// <unmanaged>DXVAHD_CUSTOM_RATE_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_CUSTOM_RATE_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct CustomRateData {	
        
        /// <summary>	
        /// <dd> <p>The ratio of the output frame rate to the input frame rate, expressed as a <strong><see cref="SharpDX.MediaFoundation.DirectX.Rational"/></strong> structure that holds a rational number.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_CUSTOM_RATE_DATA::CustomRate']/*"/>	
        /// <msdn-id>dd318414</msdn-id>	
        /// <unmanaged>DXVAHD_RATIONAL CustomRate</unmanaged>	
        /// <unmanaged-short>DXVAHD_RATIONAL CustomRate</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Rational CustomRate;
        
        /// <summary>	
        /// <dd> <p>The number of output frames that will be generated for every <em>N</em> input samples, where <em>N</em> = <strong>InputFramesOrFields</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_CUSTOM_RATE_DATA::OutputFrames']/*"/>	
        /// <msdn-id>dd318414</msdn-id>	
        /// <unmanaged>unsigned int OutputFrames</unmanaged>	
        /// <unmanaged-short>unsigned int OutputFrames</unmanaged-short>	
        public int OutputFrames;
        
        /// <summary>	
        /// <dd> <p> If <strong>TRUE</strong>, the input stream must be interlaced<strong></strong>. Otherwise, the input stream must be progressive.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_CUSTOM_RATE_DATA::InputInterlaced']/*"/>	
        /// <msdn-id>dd318414</msdn-id>	
        /// <unmanaged>BOOL InputInterlaced</unmanaged>	
        /// <unmanaged-short>BOOL InputInterlaced</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool InputInterlaced;
        
        /// <summary>	
        /// <dd> <p>The number of input fields or frames for every <em>N</em> output frames that will be generated, where <em>N</em> = <strong>OutputFrames</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_CUSTOM_RATE_DATA::InputFramesOrFields']/*"/>	
        /// <msdn-id>dd318414</msdn-id>	
        /// <unmanaged>unsigned int InputFramesOrFields</unmanaged>	
        /// <unmanaged-short>unsigned int InputFramesOrFields</unmanaged-short>	
        public int InputFramesOrFields;
    }
    
    /// <summary>	
    /// <p> Describes a buffer sent from a decoder to a DirectX Video Acceleration (DXVA) device. </p>	
    /// </summary>	
    /// <remarks>	
    /// <p>This structure corresponds closely to the <strong>DXVA_BufferDescription</strong> structure in DXVA 1, but some of the fields are no longer used in DXVA 2.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeBufferDesc']/*"/>	
    /// <msdn-id>ms704794</msdn-id>	
    /// <unmanaged>DXVA2_DecodeBufferDesc</unmanaged>	
    /// <unmanaged-short>DXVA2_DecodeBufferDesc</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct DecodeBufferDesc {	
        
        /// <summary>	
        /// <dd> <p>Identifies the type of buffer passed to the accelerator. Must be one of the following values.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.CompressedBufferType.PictureParameters"/></strong></dt> </dl> </td><td> <p> Picture decoding parameter buffer. </p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.CompressedBufferType.MacroBlockControl"/></strong></dt> </dl> </td><td> <p> Macroblock control command buffer. </p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.CompressedBufferType.ResidualDifference"/></strong></dt> </dl> </td><td> <p> Residual difference block data buffer. </p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.CompressedBufferType.DeblockingControl"/></strong></dt> </dl> </td><td> <p> Deblocking filter control command buffer. </p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.CompressedBufferType.InverseQuantizationMatrix"/></strong></dt> </dl> </td><td> <p> Inverse quantization matrix buffer. </p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.CompressedBufferType.SliceControl"/></strong></dt> </dl> </td><td> <p> Slice-control buffer. </p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.CompressedBufferType.BitStreamDate"/></strong></dt> </dl> </td><td> <p> Bitstream data buffer. </p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.CompressedBufferType.Dxva2MotionVectorBuffer"/></strong></dt> </dl> </td><td> <p> Motion vector buffer. </p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.CompressedBufferType.Dxva2FilmGrainBuffer"/></strong></dt> </dl> </td><td> <p> Film grain synthesis data buffer. </p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeBufferDesc::CompressedBufferType']/*"/>	
        /// <msdn-id>ms704794</msdn-id>	
        /// <unmanaged>unsigned int CompressedBufferType</unmanaged>	
        /// <unmanaged-short>unsigned int CompressedBufferType</unmanaged-short>	
        public int CompressedBufferType;
        
        /// <summary>	
        /// <dd> <p> Reserved. Set to zero. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeBufferDesc::BufferIndex']/*"/>	
        /// <msdn-id>ms704794</msdn-id>	
        /// <unmanaged>unsigned int BufferIndex</unmanaged>	
        /// <unmanaged-short>unsigned int BufferIndex</unmanaged-short>	
        public int BufferIndex;
        
        /// <summary>	
        /// <dd> <p> Specifies the offset of the relevant data from the beginning of the buffer, in bytes. Currently this value must be zero. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeBufferDesc::DataOffset']/*"/>	
        /// <msdn-id>ms704794</msdn-id>	
        /// <unmanaged>unsigned int DataOffset</unmanaged>	
        /// <unmanaged-short>unsigned int DataOffset</unmanaged-short>	
        public int DataOffset;
        
        /// <summary>	
        /// <dd> <p> Specifies the amount of relevant data in the buffer, in bytes. The location of the last byte of content in the buffer is <strong>DataOffset</strong> + <strong>DataSize</strong> ? 1. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeBufferDesc::DataSize']/*"/>	
        /// <msdn-id>ms704794</msdn-id>	
        /// <unmanaged>unsigned int DataSize</unmanaged>	
        /// <unmanaged-short>unsigned int DataSize</unmanaged-short>	
        public int DataSize;
        
        /// <summary>	
        /// <dd> <p>Specifies the macroblock address of the first macroblock in the buffer. The macroblock address is given in raster scan order.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeBufferDesc::FirstMBaddress']/*"/>	
        /// <msdn-id>ms704794</msdn-id>	
        /// <unmanaged>unsigned int FirstMBaddress</unmanaged>	
        /// <unmanaged-short>unsigned int FirstMBaddress</unmanaged-short>	
        public int FirstMBaddress;
        
        /// <summary>	
        /// <dd> <p>Specifies the number of macroblocks of data in the buffer. This count includes skipped macroblocks. This value must be zero if the data buffer type is one of the following: picture decoding parameters, inverse-quantization matrix, AYUV, IA44/AI44, DPXD, Highlight, or DCCMD.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeBufferDesc::NumMBsInBuffer']/*"/>	
        /// <msdn-id>ms704794</msdn-id>	
        /// <unmanaged>unsigned int NumMBsInBuffer</unmanaged>	
        /// <unmanaged-short>unsigned int NumMBsInBuffer</unmanaged-short>	
        public int NumMBsInBuffer;
        
        /// <summary>	
        /// <dd> <p> Reserved. Set to zero. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeBufferDesc::Width']/*"/>	
        /// <msdn-id>ms704794</msdn-id>	
        /// <unmanaged>unsigned int Width</unmanaged>	
        /// <unmanaged-short>unsigned int Width</unmanaged-short>	
        public int Width;
        
        /// <summary>	
        /// <dd> <p> Reserved. Set to zero. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeBufferDesc::Height']/*"/>	
        /// <msdn-id>ms704794</msdn-id>	
        /// <unmanaged>unsigned int Height</unmanaged>	
        /// <unmanaged-short>unsigned int Height</unmanaged-short>	
        public int Height;
        
        /// <summary>	
        /// <dd> <p> Reserved. Set to zero. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeBufferDesc::Stride']/*"/>	
        /// <msdn-id>ms704794</msdn-id>	
        /// <unmanaged>unsigned int Stride</unmanaged>	
        /// <unmanaged-short>unsigned int Stride</unmanaged-short>	
        public int Stride;
        
        /// <summary>	
        /// <dd> <p> Reserved. Set to zero. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeBufferDesc::ReservedBits']/*"/>	
        /// <msdn-id>ms704794</msdn-id>	
        /// <unmanaged>unsigned int ReservedBits</unmanaged>	
        /// <unmanaged-short>unsigned int ReservedBits</unmanaged-short>	
        public int ReservedBits;
        
        /// <summary>	
        /// <dd> <p> Pointer to a byte array that contains an initialization vector (IV) for encrypted data. If the decode buffer does not contain encrypted data, set this member to <strong><c>null</c></strong>. If the decode buffer contains encrypted data, the contents of <strong>pvPVPState</strong> depends on the type of encryption. For <strong>D3DCRYPTOTYPE_AES128_CTR</strong>, the <strong>pvPVPState</strong> member points to a <strong><see cref="SharpDX.MediaFoundation.DirectX.AesCtrIv"/></strong> structure.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeBufferDesc::pvPVPState']/*"/>	
        /// <msdn-id>ms704794</msdn-id>	
        /// <unmanaged>void* pvPVPState</unmanaged>	
        /// <unmanaged-short>void pvPVPState</unmanaged-short>	
        public System.IntPtr PvPVPState;
    }
    
    /// <summary>	
    /// <p> </p><p>Contains parameters for the <strong><see cref="SharpDX.MediaFoundation.DirectX.VideoDecoder.Execute"/></strong> method.</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeExecuteParams']/*"/>	
    /// <msdn-id>ms704591</msdn-id>	
    /// <unmanaged>DXVA2_DecodeExecuteParams</unmanaged>	
    /// <unmanaged-short>DXVA2_DecodeExecuteParams</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct DecodeExecuteParams {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeExecuteParams::NumCompBuffers']/*"/>	
        /// <msdn-id>ms704591</msdn-id>	
        /// <unmanaged>unsigned int NumCompBuffers</unmanaged>	
        /// <unmanaged-short>unsigned int NumCompBuffers</unmanaged-short>	
        public int NumCompBuffers;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeExecuteParams::pCompressedBuffers']/*"/>	
        /// <msdn-id>ms704591</msdn-id>	
        /// <unmanaged>DXVA2_DecodeBufferDesc* pCompressedBuffers</unmanaged>	
        /// <unmanaged-short>DXVA2_DecodeBufferDesc pCompressedBuffers</unmanaged-short>	
        public System.IntPtr PCompressedBuffers;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeExecuteParams::pExtensionData']/*"/>	
        /// <msdn-id>ms704591</msdn-id>	
        /// <unmanaged>DXVA2_DecodeExtensionData* pExtensionData</unmanaged>	
        /// <unmanaged-short>DXVA2_DecodeExtensionData pExtensionData</unmanaged-short>	
        public System.IntPtr PExtensionData;
    }
    
    /// <summary>	
    /// <p> </p><p>Contains private data for the <strong><see cref="SharpDX.MediaFoundation.DirectX.VideoDecoder.Execute"/></strong> method.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>This structure corresponds to parameters of the <strong>IAMVideoAccelerator::Execute</strong> method in DirectX Video Acceleration (DXVA) version 1.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeExtensionData']/*"/>	
    /// <msdn-id>ms696173</msdn-id>	
    /// <unmanaged>DXVA2_DecodeExtensionData</unmanaged>	
    /// <unmanaged-short>DXVA2_DecodeExtensionData</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct DecodeExtensionData {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeExtensionData::Function']/*"/>	
        /// <msdn-id>ms696173</msdn-id>	
        /// <unmanaged>unsigned int Function</unmanaged>	
        /// <unmanaged-short>unsigned int Function</unmanaged-short>	
        public int Function;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeExtensionData::pPrivateInputData']/*"/>	
        /// <msdn-id>ms696173</msdn-id>	
        /// <unmanaged>void* pPrivateInputData</unmanaged>	
        /// <unmanaged-short>void pPrivateInputData</unmanaged-short>	
        public System.IntPtr PPrivateInputData;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeExtensionData::PrivateInputDataSize']/*"/>	
        /// <msdn-id>ms696173</msdn-id>	
        /// <unmanaged>unsigned int PrivateInputDataSize</unmanaged>	
        /// <unmanaged-short>unsigned int PrivateInputDataSize</unmanaged-short>	
        public int PrivateInputDataSize;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeExtensionData::pPrivateOutputData']/*"/>	
        /// <msdn-id>ms696173</msdn-id>	
        /// <unmanaged>void* pPrivateOutputData</unmanaged>	
        /// <unmanaged-short>void pPrivateOutputData</unmanaged-short>	
        public System.IntPtr PPrivateOutputData;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_DecodeExtensionData::PrivateOutputDataSize']/*"/>	
        /// <msdn-id>ms696173</msdn-id>	
        /// <unmanaged>unsigned int PrivateOutputDataSize</unmanaged>	
        /// <unmanaged-short>unsigned int PrivateOutputDataSize</unmanaged-short>	
        public int PrivateOutputDataSize;
    }
    
    /// <summary>	
    /// No documentation.	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_CREATEVIDEOPROCESSOR']/*"/>	
    /// <unmanaged>DXVAHDETW_CREATEVIDEOPROCESSOR</unmanaged>	
    /// <unmanaged-short>DXVAHDETW_CREATEVIDEOPROCESSOR</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 8 )]
    public  partial struct EtwCreateVideoProcessor {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_CREATEVIDEOPROCESSOR::pObject']/*"/>	
        /// <unmanaged>unsigned longlong pObject</unmanaged>	
        /// <unmanaged-short>unsigned longlong pObject</unmanaged-short>	
        public long PObject;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_CREATEVIDEOPROCESSOR::pD3D9Ex']/*"/>	
        /// <unmanaged>unsigned longlong pD3D9Ex</unmanaged>	
        /// <unmanaged-short>unsigned longlong pD3D9Ex</unmanaged-short>	
        public long PD3D9Ex;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_CREATEVIDEOPROCESSOR::VPGuid']/*"/>	
        /// <unmanaged>GUID VPGuid</unmanaged>	
        /// <unmanaged-short>GUID VPGuid</unmanaged-short>	
        public System.Guid VPGuid;
    }
    
    /// <summary>	
    /// No documentation.	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_DESTROYVIDEOPROCESSOR']/*"/>	
    /// <unmanaged>DXVAHDETW_DESTROYVIDEOPROCESSOR</unmanaged>	
    /// <unmanaged-short>DXVAHDETW_DESTROYVIDEOPROCESSOR</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 8 )]
    public  partial struct EtwDestroyVideoProcessor {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_DESTROYVIDEOPROCESSOR::pObject']/*"/>	
        /// <unmanaged>unsigned longlong pObject</unmanaged>	
        /// <unmanaged-short>unsigned longlong pObject</unmanaged-short>	
        public long PObject;
    }
    
    /// <summary>	
    /// No documentation.	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD']/*"/>	
    /// <unmanaged>DXVAHDETW_VIDEOPROCESSBLTHD</unmanaged>	
    /// <unmanaged-short>DXVAHDETW_VIDEOPROCESSBLTHD</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 8 )]
    public  partial struct EtwVideoProcessblthd {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD::pObject']/*"/>	
        /// <unmanaged>unsigned longlong pObject</unmanaged>	
        /// <unmanaged-short>unsigned longlong pObject</unmanaged-short>	
        public long PObject;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD::pOutputSurface']/*"/>	
        /// <unmanaged>unsigned longlong pOutputSurface</unmanaged>	
        /// <unmanaged-short>unsigned longlong pOutputSurface</unmanaged-short>	
        public long POutputSurface;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD::TargetRect']/*"/>	
        /// <unmanaged>RECT TargetRect</unmanaged>	
        /// <unmanaged-short>RECT TargetRect</unmanaged-short>	
        public SharpDX.Rectangle TargetRect;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD::OutputFormat']/*"/>	
        /// <unmanaged>D3DFORMAT OutputFormat</unmanaged>	
        /// <unmanaged-short>D3DFORMAT OutputFormat</unmanaged-short>	
        public SharpDX.Direct3D9.Format OutputFormat;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD::ColorSpace']/*"/>	
        /// <unmanaged>unsigned int ColorSpace</unmanaged>	
        /// <unmanaged-short>unsigned int ColorSpace</unmanaged-short>	
        public int ColorSpace;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD::OutputFrame']/*"/>	
        /// <unmanaged>unsigned int OutputFrame</unmanaged>	
        /// <unmanaged-short>unsigned int OutputFrame</unmanaged-short>	
        public int OutputFrame;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD::StreamCount']/*"/>	
        /// <unmanaged>unsigned int StreamCount</unmanaged>	
        /// <unmanaged-short>unsigned int StreamCount</unmanaged-short>	
        public int StreamCount;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD::Enter']/*"/>	
        /// <unmanaged>BOOL Enter</unmanaged>	
        /// <unmanaged-short>BOOL Enter</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Enter;
    }
    
    /// <summary>	
    /// No documentation.	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD_STREAM']/*"/>	
    /// <unmanaged>DXVAHDETW_VIDEOPROCESSBLTHD_STREAM</unmanaged>	
    /// <unmanaged-short>DXVAHDETW_VIDEOPROCESSBLTHD_STREAM</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 8 )]
    public  partial struct EtwVideoProcessblthdStream {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD_STREAM::pObject']/*"/>	
        /// <unmanaged>unsigned longlong pObject</unmanaged>	
        /// <unmanaged-short>unsigned longlong pObject</unmanaged-short>	
        public long PObject;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD_STREAM::pInputSurface']/*"/>	
        /// <unmanaged>unsigned longlong pInputSurface</unmanaged>	
        /// <unmanaged-short>unsigned longlong pInputSurface</unmanaged-short>	
        public long PInputSurface;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD_STREAM::SourceRect']/*"/>	
        /// <unmanaged>RECT SourceRect</unmanaged>	
        /// <unmanaged-short>RECT SourceRect</unmanaged-short>	
        public SharpDX.Rectangle SourceRect;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD_STREAM::DestinationRect']/*"/>	
        /// <unmanaged>RECT DestinationRect</unmanaged>	
        /// <unmanaged-short>RECT DestinationRect</unmanaged-short>	
        public SharpDX.Rectangle DestinationRect;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD_STREAM::InputFormat']/*"/>	
        /// <unmanaged>D3DFORMAT InputFormat</unmanaged>	
        /// <unmanaged-short>D3DFORMAT InputFormat</unmanaged-short>	
        public SharpDX.Direct3D9.Format InputFormat;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD_STREAM::FrameFormat']/*"/>	
        /// <unmanaged>DXVAHD_FRAME_FORMAT FrameFormat</unmanaged>	
        /// <unmanaged-short>DXVAHD_FRAME_FORMAT FrameFormat</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.FrameFormat FrameFormat;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD_STREAM::ColorSpace']/*"/>	
        /// <unmanaged>unsigned int ColorSpace</unmanaged>	
        /// <unmanaged-short>unsigned int ColorSpace</unmanaged-short>	
        public int ColorSpace;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD_STREAM::StreamNumber']/*"/>	
        /// <unmanaged>unsigned int StreamNumber</unmanaged>	
        /// <unmanaged-short>unsigned int StreamNumber</unmanaged-short>	
        public int StreamNumber;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD_STREAM::OutputIndex']/*"/>	
        /// <unmanaged>unsigned int OutputIndex</unmanaged>	
        /// <unmanaged-short>unsigned int OutputIndex</unmanaged-short>	
        public int OutputIndex;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD_STREAM::InputFrameOrField']/*"/>	
        /// <unmanaged>unsigned int InputFrameOrField</unmanaged>	
        /// <unmanaged-short>unsigned int InputFrameOrField</unmanaged-short>	
        public int InputFrameOrField;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD_STREAM::PastFrames']/*"/>	
        /// <unmanaged>unsigned int PastFrames</unmanaged>	
        /// <unmanaged-short>unsigned int PastFrames</unmanaged-short>	
        public int PastFrames;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTHD_STREAM::FutureFrames']/*"/>	
        /// <unmanaged>unsigned int FutureFrames</unmanaged>	
        /// <unmanaged-short>unsigned int FutureFrames</unmanaged-short>	
        public int FutureFrames;
    }
    
    /// <summary>	
    /// No documentation.	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTSTATE']/*"/>	
    /// <unmanaged>DXVAHDETW_VIDEOPROCESSBLTSTATE</unmanaged>	
    /// <unmanaged-short>DXVAHDETW_VIDEOPROCESSBLTSTATE</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 8 )]
    public  partial struct EtwVideoProcessbltstate {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTSTATE::pObject']/*"/>	
        /// <unmanaged>unsigned longlong pObject</unmanaged>	
        /// <unmanaged-short>unsigned longlong pObject</unmanaged-short>	
        public long PObject;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTSTATE::State']/*"/>	
        /// <unmanaged>DXVAHD_BLT_STATE State</unmanaged>	
        /// <unmanaged-short>DXVAHD_BLT_STATE State</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.BlitState State;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTSTATE::DataSize']/*"/>	
        /// <unmanaged>unsigned int DataSize</unmanaged>	
        /// <unmanaged-short>unsigned int DataSize</unmanaged-short>	
        public int DataSize;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSBLTSTATE::SetState']/*"/>	
        /// <unmanaged>BOOL SetState</unmanaged>	
        /// <unmanaged-short>BOOL SetState</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool SetState;
    }
    
    /// <summary>	
    /// No documentation.	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSSTREAMSTATE']/*"/>	
    /// <unmanaged>DXVAHDETW_VIDEOPROCESSSTREAMSTATE</unmanaged>	
    /// <unmanaged-short>DXVAHDETW_VIDEOPROCESSSTREAMSTATE</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 8 )]
    public  partial struct EtwVideoProcessstreamstate {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSSTREAMSTATE::pObject']/*"/>	
        /// <unmanaged>unsigned longlong pObject</unmanaged>	
        /// <unmanaged-short>unsigned longlong pObject</unmanaged-short>	
        public long PObject;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSSTREAMSTATE::StreamNumber']/*"/>	
        /// <unmanaged>unsigned int StreamNumber</unmanaged>	
        /// <unmanaged-short>unsigned int StreamNumber</unmanaged-short>	
        public int StreamNumber;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSSTREAMSTATE::State']/*"/>	
        /// <unmanaged>DXVAHD_STREAM_STATE State</unmanaged>	
        /// <unmanaged-short>DXVAHD_STREAM_STATE State</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.StreamState State;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSSTREAMSTATE::DataSize']/*"/>	
        /// <unmanaged>unsigned int DataSize</unmanaged>	
        /// <unmanaged-short>unsigned int DataSize</unmanaged-short>	
        public int DataSize;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDETW_VIDEOPROCESSSTREAMSTATE::SetState']/*"/>	
        /// <unmanaged>BOOL SetState</unmanaged>	
        /// <unmanaged-short>BOOL SetState</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool SetState;
    }
    
    /// <summary>	
    /// <p> Describes the format of a video stream. </p>	
    /// </summary>	
    /// <remarks>	
    /// <p>Most of the values in this structure can be translated directly to and from <strong><see cref="SharpDX.MediaFoundation.MediaType"/></strong> attributes. For a code example that fills in the values from an <strong><see cref="SharpDX.MediaFoundation.MediaType"/></strong> reference, see <strong><see cref="SharpDX.MediaFoundation.DirectX.VideoDesc"/></strong>.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ExtendedFormat']/*"/>	
    /// <msdn-id>ms704798</msdn-id>	
    /// <unmanaged>DXVA2_ExtendedFormat</unmanaged>	
    /// <unmanaged-short>DXVA2_ExtendedFormat</unmanaged-short>	
    [StructLayout(LayoutKind.Explicit, Pack = 0 )]
    public  partial struct ExtendedFormat {	
        
        /// <summary>	
        /// <dd> <p>Describes the interlacing of the video frames. Contains a value from the <strong><see cref="SharpDX.MediaFoundation.DirectX.SampleFormat"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ExtendedFormat::SampleFormat']/*"/>	
        /// <msdn-id>ms704798</msdn-id>	
        /// <unmanaged>unsigned int SampleFormat</unmanaged>	
        /// <unmanaged-short>unsigned int SampleFormat</unmanaged-short>	
        public int  SampleFormat { 
            get { 
                return (int)((_SampleFormat >> 0)  &  255);
            }
            set { 
                _SampleFormat = (int)((_SampleFormat & ~( 255 << 0)) | ( (value & 255) << 0));
            }
        }
        [FieldOffset(0)]
        internal int _SampleFormat;
		
        
        /// <summary>	
        /// <dd> <p>Describes the chroma siting. Contains a value from the <strong><see cref="SharpDX.MediaFoundation.DirectX.VideoChromaSubSampling"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ExtendedFormat::VideoChromaSubsampling']/*"/>	
        /// <msdn-id>ms704798</msdn-id>	
        /// <unmanaged>unsigned int VideoChromaSubsampling</unmanaged>	
        /// <unmanaged-short>unsigned int VideoChromaSubsampling</unmanaged-short>	
        public int  VideoChromaSubsampling { 
            get { 
                return (int)((_VideoChromaSubsampling >> 8)  &  15);
            }
            set { 
                _VideoChromaSubsampling = (int)((_VideoChromaSubsampling & ~( 15 << 8)) | ( (value & 15) << 8));
            }
        }
        [FieldOffset(0)]
        internal int _VideoChromaSubsampling;
		
        
        /// <summary>	
        /// <dd> <p>Describes the nominal range of the Y'CbCr or RGB color data. Contains a value from the <strong><see cref="SharpDX.MediaFoundation.DirectX.NominalRange"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ExtendedFormat::NominalRange']/*"/>	
        /// <msdn-id>ms704798</msdn-id>	
        /// <unmanaged>unsigned int NominalRange</unmanaged>	
        /// <unmanaged-short>unsigned int NominalRange</unmanaged-short>	
        public int  NominalRange { 
            get { 
                return (int)((_NominalRange >> 12)  &  7);
            }
            set { 
                _NominalRange = (int)((_NominalRange & ~( 7 << 12)) | ( (value & 7) << 12));
            }
        }
        [FieldOffset(0)]
        internal int _NominalRange;
		
        
        /// <summary>	
        /// <dd> <p>Describes the transform from Y'PbPr (component video) to studio R'G'B'. Contains a value from the <strong><see cref="SharpDX.MediaFoundation.DirectX.VideoTransferMatrix"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ExtendedFormat::VideoTransferMatrix']/*"/>	
        /// <msdn-id>ms704798</msdn-id>	
        /// <unmanaged>unsigned int VideoTransferMatrix</unmanaged>	
        /// <unmanaged-short>unsigned int VideoTransferMatrix</unmanaged-short>	
        public int  VideoTransferMatrix { 
            get { 
                return (int)((_VideoTransferMatrix >> 15)  &  7);
            }
            set { 
                _VideoTransferMatrix = (int)((_VideoTransferMatrix & ~( 7 << 15)) | ( (value & 7) << 15));
            }
        }
        [FieldOffset(0)]
        internal int _VideoTransferMatrix;
		
        
        /// <summary>	
        /// <dd> <p>Describes the intended viewing conditions. Contains a value from the <strong><see cref="SharpDX.MediaFoundation.DirectX.VideoLighting"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ExtendedFormat::VideoLighting']/*"/>	
        /// <msdn-id>ms704798</msdn-id>	
        /// <unmanaged>unsigned int VideoLighting</unmanaged>	
        /// <unmanaged-short>unsigned int VideoLighting</unmanaged-short>	
        public int  VideoLighting { 
            get { 
                return (int)((_VideoLighting >> 18)  &  15);
            }
            set { 
                _VideoLighting = (int)((_VideoLighting & ~( 15 << 18)) | ( (value & 15) << 18));
            }
        }
        [FieldOffset(0)]
        internal int _VideoLighting;
		
        
        /// <summary>	
        /// <dd> <p>Describes the color primaries. Contains a value from the <strong><see cref="SharpDX.MediaFoundation.DirectX.VideoPrimaries"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ExtendedFormat::VideoPrimaries']/*"/>	
        /// <msdn-id>ms704798</msdn-id>	
        /// <unmanaged>unsigned int VideoPrimaries</unmanaged>	
        /// <unmanaged-short>unsigned int VideoPrimaries</unmanaged-short>	
        public int  VideoPrimaries { 
            get { 
                return (int)((_VideoPrimaries >> 22)  &  31);
            }
            set { 
                _VideoPrimaries = (int)((_VideoPrimaries & ~( 31 << 22)) | ( (value & 31) << 22));
            }
        }
        [FieldOffset(0)]
        internal int _VideoPrimaries;
		
        
        /// <summary>	
        /// <dd> <p>Describes the gamma correction transfer function. Contains a value from the <strong><see cref="SharpDX.MediaFoundation.DirectX.VideoTransferFunction"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ExtendedFormat::VideoTransferFunction']/*"/>	
        /// <msdn-id>ms704798</msdn-id>	
        /// <unmanaged>unsigned int VideoTransferFunction</unmanaged>	
        /// <unmanaged-short>unsigned int VideoTransferFunction</unmanaged-short>	
        public int  VideoTransferFunction { 
            get { 
                return (int)((_VideoTransferFunction >> 27)  &  31);
            }
            set { 
                _VideoTransferFunction = (int)((_VideoTransferFunction & ~( 31 << 27)) | ( (value & 31) << 27));
            }
        }
        [FieldOffset(0)]
        internal int _VideoTransferFunction;
		
        
        /// <summary>	
        /// <dd> <p>Use this member to access all of the bits in the union.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ExtendedFormat::value']/*"/>	
        /// <msdn-id>ms704798</msdn-id>	
        /// <unmanaged>unsigned int value</unmanaged>	
        /// <unmanaged-short>unsigned int value</unmanaged-short>	
        [FieldOffset(0)]
        public int Value;
    }
    
    /// <summary>	
    /// <p>Defines the range of supported values for an image filter.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The multiplier enables the filter range to have a fractional step value.</p><p>For example, a hue filter might have an actual range of [-180.0 ... +180.0] with a step size of 0.25. The device would report the following range and multiplier:</p><ul> <li>Minimum: -720</li> <li>Maximum: +720</li> <li>Multiplier: 0.25</li> </ul><p>In this case,  a filter value of 2 would be interpreted by the device as 0.50 (or 2 ? 0.25).</p><p>The device should use  a multiplier that can be represented exactly as a base-2 fraction.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_FILTER_RANGE_DATA']/*"/>	
    /// <msdn-id>dd318428</msdn-id>	
    /// <unmanaged>DXVAHD_FILTER_RANGE_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_FILTER_RANGE_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct FilterRangeData {	
        
        /// <summary>	
        /// <dd> <p>The minimum value of the filter.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_FILTER_RANGE_DATA::Minimum']/*"/>	
        /// <msdn-id>dd318428</msdn-id>	
        /// <unmanaged>int Minimum</unmanaged>	
        /// <unmanaged-short>int Minimum</unmanaged-short>	
        public int Minimum;
        
        /// <summary>	
        /// <dd> <p>The maximum value of the filter.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_FILTER_RANGE_DATA::Maximum']/*"/>	
        /// <msdn-id>dd318428</msdn-id>	
        /// <unmanaged>int Maximum</unmanaged>	
        /// <unmanaged-short>int Maximum</unmanaged-short>	
        public int Maximum;
        
        /// <summary>	
        /// <dd> <p>The default value of the filter.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_FILTER_RANGE_DATA::Default']/*"/>	
        /// <msdn-id>dd318428</msdn-id>	
        /// <unmanaged>int Default</unmanaged>	
        /// <unmanaged-short>int Default</unmanaged-short>	
        public int Default;
        
        /// <summary>	
        /// <dd> <p>A multiplier. Use the following formula to translate the filter setting into the actual filter value: <em>Actual Value</em> = <em>Set Value</em>???<em>Multiplier</em>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_FILTER_RANGE_DATA::Multiplier']/*"/>	
        /// <msdn-id>dd318428</msdn-id>	
        /// <unmanaged>float Multiplier</unmanaged>	
        /// <unmanaged-short>float Multiplier</unmanaged-short>	
        public float Multiplier;
    }
    
    /// <summary>	
    /// <p> </p><p>Contains parameters for a DirectX Video Acceleration (DXVA) image filter.</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_FilterValues']/*"/>	
    /// <msdn-id>ms697015</msdn-id>	
    /// <unmanaged>DXVA2_FilterValues</unmanaged>	
    /// <unmanaged-short>DXVA2_FilterValues</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct FilterValues {	
        
        /// <summary>	
        /// <dd> <p>Filter level.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_FilterValues::Level']/*"/>	
        /// <msdn-id>ms697015</msdn-id>	
        /// <unmanaged>DXVA2_Fixed32 Level</unmanaged>	
        /// <unmanaged-short>DXVA2_Fixed32 Level</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Fixed32 Level;
        
        /// <summary>	
        /// <dd> <p>Filter threshold.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_FilterValues::Threshold']/*"/>	
        /// <msdn-id>ms697015</msdn-id>	
        /// <unmanaged>DXVA2_Fixed32 Threshold</unmanaged>	
        /// <unmanaged-short>DXVA2_Fixed32 Threshold</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Fixed32 Threshold;
        
        /// <summary>	
        /// <dd> <p>Filter radius.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_FilterValues::Radius']/*"/>	
        /// <msdn-id>ms697015</msdn-id>	
        /// <unmanaged>DXVA2_Fixed32 Radius</unmanaged>	
        /// <unmanaged-short>DXVA2_Fixed32 Radius</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Fixed32 Radius;
    }
    
    /// <summary>	
    /// <p>Returns a <strong><see cref="SharpDX.MediaFoundation.DirectX.Fixed32"/></strong> structure that contains an opaque alpha value.</p><p>You can use this function for DirectX Video Acceleration (DXVA) operations that require alpha values expressed as fixed-point numbers.</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_Fixed32']/*"/>	
    /// <msdn-id>aa473831</msdn-id>	
    /// <unmanaged>DXVA2_Fixed32</unmanaged>	
    /// <unmanaged-short>DXVA2_Fixed32</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct Fixed32 {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_Fixed32::Fraction']/*"/>	
        /// <msdn-id>aa473831</msdn-id>	
        /// <unmanaged>unsigned short Fraction</unmanaged>	
        /// <unmanaged-short>unsigned short Fraction</unmanaged-short>	
        public short Fraction;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_Fixed32::Value']/*"/>	
        /// <msdn-id>aa473831</msdn-id>	
        /// <unmanaged>short Value</unmanaged>	
        /// <unmanaged-short>short Value</unmanaged-short>	
        public short Value;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_Fixed32::ll']/*"/>	
        /// <msdn-id>aa473831</msdn-id>	
        /// <unmanaged>int ll</unmanaged>	
        /// <unmanaged-short>int ll</unmanaged-short>	
        public int Ll;
    }
    
    /// <summary>	
    /// <p> </p><p>Defines a video frequency.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The value 0/0 indicates an unknown frequency. Values of the form <em>n</em>/0, where <em>n</em> is not zero, are invalid. Values of the form 0/<em>n</em>, where <em>n</em> is not zero, indicate a frequency of zero.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_Frequency']/*"/>	
    /// <msdn-id>ms693574</msdn-id>	
    /// <unmanaged>DXVA2_Frequency</unmanaged>	
    /// <unmanaged-short>DXVA2_Frequency</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct Frequency {	
        
        /// <summary>	
        /// <dd> <p>Numerator of the frequency.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_Frequency::Numerator']/*"/>	
        /// <msdn-id>ms693574</msdn-id>	
        /// <unmanaged>unsigned int Numerator</unmanaged>	
        /// <unmanaged-short>unsigned int Numerator</unmanaged-short>	
        public int Numerator;
        
        /// <summary>	
        /// <dd> <p>Denominator of the frequency.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_Frequency::Denominator']/*"/>	
        /// <msdn-id>ms693574</msdn-id>	
        /// <unmanaged>unsigned int Denominator</unmanaged>	
        /// <unmanaged-short>unsigned int Denominator</unmanaged-short>	
        public int Denominator;
    }
    
    /// <summary>	
    /// <p> </p><p>Contains values for DirectX Video Acceleration (DXVA) video processing operations.</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ProcAmpValues']/*"/>	
    /// <msdn-id>ms703115</msdn-id>	
    /// <unmanaged>DXVA2_ProcAmpValues</unmanaged>	
    /// <unmanaged-short>DXVA2_ProcAmpValues</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct ProcAmpValues {	
        
        /// <summary>	
        /// <dd> <p>Brightness value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ProcAmpValues::Brightness']/*"/>	
        /// <msdn-id>ms703115</msdn-id>	
        /// <unmanaged>DXVA2_Fixed32 Brightness</unmanaged>	
        /// <unmanaged-short>DXVA2_Fixed32 Brightness</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Fixed32 Brightness;
        
        /// <summary>	
        /// <dd> <p>Contrast value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ProcAmpValues::Contrast']/*"/>	
        /// <msdn-id>ms703115</msdn-id>	
        /// <unmanaged>DXVA2_Fixed32 Contrast</unmanaged>	
        /// <unmanaged-short>DXVA2_Fixed32 Contrast</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Fixed32 Contrast;
        
        /// <summary>	
        /// <dd> <p>Hue value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ProcAmpValues::Hue']/*"/>	
        /// <msdn-id>ms703115</msdn-id>	
        /// <unmanaged>DXVA2_Fixed32 Hue</unmanaged>	
        /// <unmanaged-short>DXVA2_Fixed32 Hue</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Fixed32 Hue;
        
        /// <summary>	
        /// <dd> <p>Saturation value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ProcAmpValues::Saturation']/*"/>	
        /// <msdn-id>ms703115</msdn-id>	
        /// <unmanaged>DXVA2_Fixed32 Saturation</unmanaged>	
        /// <unmanaged-short>DXVA2_Fixed32 Saturation</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Fixed32 Saturation;
    }
    
    /// <summary>	
    /// <p>Contains a rational number (ratio).</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>Values of the form 0/<em>n</em> are interpreted as zero. The value 0/0 is interpreted as zero.  However, these values are not necessarily valid in all contexts.</p><p>Values of the form <em>n</em>/0, where <em>n</em> is nonzero, are invalid.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_RATIONAL']/*"/>	
    /// <msdn-id>dd318756</msdn-id>	
    /// <unmanaged>DXVAHD_RATIONAL</unmanaged>	
    /// <unmanaged-short>DXVAHD_RATIONAL</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct Rational {	
        
        /// <summary>	
        /// <dd> <p>The numerator of the ratio.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_RATIONAL::Numerator']/*"/>	
        /// <msdn-id>dd318756</msdn-id>	
        /// <unmanaged>unsigned int Numerator</unmanaged>	
        /// <unmanaged-short>unsigned int Numerator</unmanaged-short>	
        public int Numerator;
        
        /// <summary>	
        /// <dd> <p>The denominator of the ratio.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_RATIONAL::Denominator']/*"/>	
        /// <msdn-id>dd318756</msdn-id>	
        /// <unmanaged>unsigned int Denominator</unmanaged>	
        /// <unmanaged-short>unsigned int Denominator</unmanaged-short>	
        public int Denominator;
    }
    
    /// <summary>	
    /// <p>Contains per-stream data for the <strong><see cref="SharpDX.MediaFoundation.DirectX.HDVideoProcessor.VideoProcessBltHD"/></strong> method.</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_DATA']/*"/>	
    /// <msdn-id>dd318757</msdn-id>	
    /// <unmanaged>DXVAHD_STREAM_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_STREAM_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct StreamData {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_DATA::Enable']/*"/>	
        /// <msdn-id>dd318757</msdn-id>	
        /// <unmanaged>BOOL Enable</unmanaged>	
        /// <unmanaged-short>BOOL Enable</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Enable;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_DATA::OutputIndex']/*"/>	
        /// <msdn-id>dd318757</msdn-id>	
        /// <unmanaged>unsigned int OutputIndex</unmanaged>	
        /// <unmanaged-short>unsigned int OutputIndex</unmanaged-short>	
        public int OutputIndex;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_DATA::InputFrameOrField']/*"/>	
        /// <msdn-id>dd318757</msdn-id>	
        /// <unmanaged>unsigned int InputFrameOrField</unmanaged>	
        /// <unmanaged-short>unsigned int InputFrameOrField</unmanaged-short>	
        public int InputFrameOrField;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_DATA::PastFrames']/*"/>	
        /// <msdn-id>dd318757</msdn-id>	
        /// <unmanaged>unsigned int PastFrames</unmanaged>	
        /// <unmanaged-short>unsigned int PastFrames</unmanaged-short>	
        public int PastFrames;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_DATA::FutureFrames']/*"/>	
        /// <msdn-id>dd318757</msdn-id>	
        /// <unmanaged>unsigned int FutureFrames</unmanaged>	
        /// <unmanaged-short>unsigned int FutureFrames</unmanaged-short>	
        public int FutureFrames;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_DATA::ppPastSurfaces']/*"/>	
        /// <msdn-id>dd318757</msdn-id>	
        /// <unmanaged>IDirect3DSurface9** ppPastSurfaces</unmanaged>	
        /// <unmanaged-short>IDirect3DSurface9 ppPastSurfaces</unmanaged-short>	
        public System.IntPtr PpPastSurfaces;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_DATA::pInputSurface']/*"/>	
        /// <msdn-id>dd318757</msdn-id>	
        /// <unmanaged>IDirect3DSurface9* pInputSurface</unmanaged>	
        /// <unmanaged-short>IDirect3DSurface9 pInputSurface</unmanaged-short>	
        public System.IntPtr PInputSurface;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_DATA::ppFutureSurfaces']/*"/>	
        /// <msdn-id>dd318757</msdn-id>	
        /// <unmanaged>IDirect3DSurface9** ppFutureSurfaces</unmanaged>	
        /// <unmanaged-short>IDirect3DSurface9 ppFutureSurfaces</unmanaged-short>	
        public System.IntPtr PpFutureSurfaces;
    }
    
    /// <summary>	
    /// <p>Specifies the planar alpha value for an input stream, when using Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>For each pixel, the destination color value is computed as follows:</p><p><code>Cd = Cs * (As * Ap * Ae) + Cd * (1.0 - As * Ap * Ae)</code></p><p>where</p><ul> <li><code>Cd</code> = Color value of the destination pixel.</li> <li><code>Cs</code> = Color value of source pixel.</li> <li><code>As</code> = Per-pixel source alpha.</li> <li><code>Ap</code> = Planar alpha value.</li> <li><code>Ae</code> = Palette-entry alpha value, or 1.0 (see Note).</li> </ul><p><strong>Note</strong>??Palette-entry alpha values apply only to palettized color formats, and only when the device supports the <strong><see cref="SharpDX.MediaFoundation.DirectX.FeatureCaps.AlphaPalette"/></strong> capability. Otherwise, this factor equals 1.0. </p><p>The destination alpha value is computed according to the <strong><see cref="SharpDX.MediaFoundation.DirectX.BlitState.AlphaFill"/></strong> state. For more information, see <strong><see cref="SharpDX.MediaFoundation.DirectX.BlitStateAlphaFillData"/></strong>.</p><p>To get the device capabilities, call <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorDeviceCaps"/></strong> and check the <strong>FeatureCaps</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.Vpdevcaps"/></strong> structure.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_ALPHA_DATA']/*"/>	
    /// <msdn-id>dd318759</msdn-id>	
    /// <unmanaged>DXVAHD_STREAM_STATE_ALPHA_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_STREAM_STATE_ALPHA_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct StreamStateAlphaData {	
        
        /// <summary>	
        /// <dd> <p><strong>If TRUE</strong>, alpha blending is enabled. Otherwise, alpha blending is disabled. The default state value is <strong><see cref="SharpDX.Result.False"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_ALPHA_DATA::Enable']/*"/>	
        /// <msdn-id>dd318759</msdn-id>	
        /// <unmanaged>BOOL Enable</unmanaged>	
        /// <unmanaged-short>BOOL Enable</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Enable;
        
        /// <summary>	
        /// <dd> <p>Specifies the planar alpha value as a floating-point number from 0.0 (transparent) to 1.0 (opaque). </p> <p>If the <strong>Enable</strong> member is <strong><see cref="SharpDX.Result.False"/></strong>, this member is ignored.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_ALPHA_DATA::Alpha']/*"/>	
        /// <msdn-id>dd318759</msdn-id>	
        /// <unmanaged>float Alpha</unmanaged>	
        /// <unmanaged-short>float Alpha</unmanaged-short>	
        public float Alpha;
    }
    
    /// <summary>	
    /// <p>Specifies the pixel aspect ratio (PAR) for the source and destination rectangles.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>Pixel aspect ratios of the form 0/<em>n</em> and <em>n</em>/0 are not valid.</p><p>If the <strong>Enable</strong> member is <strong><see cref="SharpDX.Result.False"/></strong>, the device ignores the values of <strong>SourceAspectRatio</strong> and <strong>DestinationAspectRatio</strong>. </p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA']/*"/>	
    /// <msdn-id>dd318760</msdn-id>	
    /// <unmanaged>DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct StreamStateAspectRatioData {	
        
        /// <summary>	
        /// <dd> <p><strong>If TRUE</strong>, the <strong>SourceAspectRatio</strong> and <strong>DestinationAspectRatio</strong> members contain valid values<strong></strong>. Otherwise, the pixel aspect ratios are unspecified.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA::Enable']/*"/>	
        /// <msdn-id>dd318760</msdn-id>	
        /// <unmanaged>BOOL Enable</unmanaged>	
        /// <unmanaged-short>BOOL Enable</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Enable;
        
        /// <summary>	
        /// <dd> <p>A <strong><see cref="SharpDX.MediaFoundation.DirectX.Rational"/></strong> structure that contains the source PAR. The default state value is 1:1 (square pixels).</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA::SourceAspectRatio']/*"/>	
        /// <msdn-id>dd318760</msdn-id>	
        /// <unmanaged>DXVAHD_RATIONAL SourceAspectRatio</unmanaged>	
        /// <unmanaged-short>DXVAHD_RATIONAL SourceAspectRatio</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Rational SourceAspectRatio;
        
        /// <summary>	
        /// <dd> <p>A <strong><see cref="SharpDX.MediaFoundation.DirectX.Rational"/></strong> structure that contains the destination PAR. The default state value is 1:1 (square pixels).</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA::DestinationAspectRatio']/*"/>	
        /// <msdn-id>dd318760</msdn-id>	
        /// <unmanaged>DXVAHD_RATIONAL DestinationAspectRatio</unmanaged>	
        /// <unmanaged-short>DXVAHD_RATIONAL DestinationAspectRatio</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Rational DestinationAspectRatio;
    }
    
    /// <summary>	
    /// <p>Specifies the format for an input stream, when using Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_D3DFORMAT_DATA']/*"/>	
    /// <msdn-id>dd318761</msdn-id>	
    /// <unmanaged>DXVAHD_STREAM_STATE_D3DFORMAT_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_STREAM_STATE_D3DFORMAT_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct StreamStateD3DFORMATData {	
        
        /// <summary>	
        /// <dd> <p>The surface format, specified as a <strong><see cref="SharpDX.Direct3D9.Format"/></strong> value. You can also use a FOURCC code to specify a format that is not defined in the <strong><see cref="SharpDX.Direct3D9.Format"/></strong> enumeration. For more information, see Video FOURCCs.</p> <p>The default state value is <strong><see cref="SharpDX.Direct3D9.Format.Unknown"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_D3DFORMAT_DATA::Format']/*"/>	
        /// <msdn-id>dd318761</msdn-id>	
        /// <unmanaged>D3DFORMAT Format</unmanaged>	
        /// <unmanaged-short>D3DFORMAT Format</unmanaged-short>	
        public SharpDX.Direct3D9.Format Format;
    }
    
    /// <summary>	
    /// <p>Specifies the destination rectangle for an input stream, when using Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA']/*"/>	
    /// <msdn-id>dd318762</msdn-id>	
    /// <unmanaged>DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct StreamStateDestinationRectangleData {	
        
        /// <summary>	
        /// <dd> <p>Specifies whether to use the destination rectangle, or use the entire output surface. The default state value is <strong><see cref="SharpDX.Result.False"/></strong>.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong>TRUE</strong></dt> </dl> </td><td> <p>Use the destination rectangle given in the <strong>DestinationRect</strong> member.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Result.False"/></strong></dt> </dl> </td><td> <p>Use the entire output surface as the destination rectangle.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA::Enable']/*"/>	
        /// <msdn-id>dd318762</msdn-id>	
        /// <unmanaged>BOOL Enable</unmanaged>	
        /// <unmanaged-short>BOOL Enable</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Enable;
        
        /// <summary>	
        /// <dd> <p>The <em>destination rectangle</em>, which defines the portion of the output surface where the source rectangle is blitted. The destination rectangle is given in pixel coordinates, relative to the output surface. The default value is an empty rectangle, (0, 0, 0, 0).</p> <p>If the <strong>Enable</strong> member is <strong><see cref="SharpDX.Result.False"/></strong>, the <strong>DestinationRect</strong> member is ignored.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA::DestinationRect']/*"/>	
        /// <msdn-id>dd318762</msdn-id>	
        /// <unmanaged>RECT DestinationRect</unmanaged>	
        /// <unmanaged-short>RECT DestinationRect</unmanaged-short>	
        public SharpDX.Rectangle DestinationRect;
    }
    
    /// <summary>	
    /// <p>Specifies the level for a filtering operation on a Microsoft DirectX Video Acceleration High Definition (DXVA-HD) input stream.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>For a list of image filters that are defined for DXVA-HD, see <strong><see cref="SharpDX.MediaFoundation.DirectX.Filter"/></strong>. The device might not support every type of image filter. To find out whether the device supports a particular filter, call the <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorDeviceCaps"/></strong> method and check the <strong>FilterCaps</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.Vpdevcaps"/></strong> structure.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_FILTER_DATA']/*"/>	
    /// <msdn-id>dd318763</msdn-id>	
    /// <unmanaged>DXVAHD_STREAM_STATE_FILTER_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_STREAM_STATE_FILTER_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct StreamStateFilterData {	
        
        /// <summary>	
        /// <dd> <p><strong>If TRUE</strong>, the filter is enabled. Otherwise, <strong>the filter is disabled</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_FILTER_DATA::Enable']/*"/>	
        /// <msdn-id>dd318763</msdn-id>	
        /// <unmanaged>BOOL Enable</unmanaged>	
        /// <unmanaged-short>BOOL Enable</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Enable;
        
        /// <summary>	
        /// <dd> <p>The level for the filter. The meaning of this value depends on the implementation. To get the range and default value of a particular filter, call the <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorFilterRange"/></strong> method.</p> <p>If the <strong>Enable</strong> member is <strong><see cref="SharpDX.Result.False"/></strong>, the <strong>Level</strong> member is ignored. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_FILTER_DATA::Level']/*"/>	
        /// <msdn-id>dd318763</msdn-id>	
        /// <unmanaged>int Level</unmanaged>	
        /// <unmanaged-short>int Level</unmanaged-short>	
        public int Level;
    }
    
    /// <summary>	
    /// <p>Specifies how a Microsoft DirectX Video Acceleration High Definition (DXVA-HD) input stream is interlaced.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>Some devices do not support interlaced RGB. Interlaced RGB support is indicated by the <strong><see cref="SharpDX.MediaFoundation.DirectX.InputFormatCaps.RgbInterlaced"/></strong> capability flag. If the device does not support interlaced RGB, it treats all RGB input streams as progressive frames. </p><p>Some devices do not support interlaced formats with palettized color. This support is indicated by the <strong><see cref="SharpDX.MediaFoundation.DirectX.InputFormatCaps.PaletteInterlaced"/></strong> flag. If the device does not support this capability, all palettized input streams are treated as progressive frames.</p><p>To get the device's capabilities, call <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorDeviceCaps"/></strong> and check the <strong>InputFormatCaps</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.Vpdevcaps"/></strong> structure.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA']/*"/>	
    /// <msdn-id>dd318764</msdn-id>	
    /// <unmanaged>DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct StreamStateFrameFormatData {	
        
        /// <summary>	
        /// <dd> <p>The video interlacing, specified as a <strong><see cref="SharpDX.MediaFoundation.DirectX.FrameFormat"/></strong> value.</p> <p>The default state value is <strong><see cref="SharpDX.MediaFoundation.DirectX.FrameFormat.Progressive"/></strong> (progressive frames).</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA::FrameFormat']/*"/>	
        /// <msdn-id>dd318764</msdn-id>	
        /// <unmanaged>DXVAHD_FRAME_FORMAT FrameFormat</unmanaged>	
        /// <unmanaged-short>DXVAHD_FRAME_FORMAT FrameFormat</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.FrameFormat FrameFormat;
    }
    
    /// <summary>	
    /// <p>Specifies the color space for a Microsoft DirectX Video Acceleration High Definition (DXVA-HD) input stream.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The <strong>RGB_Range</strong> member applies to RGB input, while the <strong>YCbCr_Matrix</strong> and <strong>YCbCr_xvYCC</strong> members apply to YCbCr (YUV) input.</p><p>In some situations, the device might perform an intermediate color conversion on the input stream. If so, it uses the flags that apply to  both color spaces. For example, suppose the device converts from RGB to YCbCr. If the <strong>RGB_Range</strong> member is 0 and the <strong>YCbCr_Matrix</strong> member is 1, the device will convert from full-range RGB to BT.709 YCbCr.</p><p>If the device supports xvYCC, it returns the <strong><see cref="SharpDX.MediaFoundation.DirectX.DeviceCaps.XvYCC"/></strong> capability flag in the <strong>DeviceCaps</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.Vpdevcaps"/></strong> structure. Otherwise, the device ignores the value of <strong>YCbCr_xvYCC</strong> and treats all YCbCr input as conventional YCbCr. To get the device's capabilities, call <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorDeviceCaps"/></strong>.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA']/*"/>	
    /// <msdn-id>dd318765</msdn-id>	
    /// <unmanaged>DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Explicit, Pack = 0 )]
    public  partial struct StreamStateInputColorSpaceData {	
        
        /// <summary>	
        /// <dd> <p>Specifies whether the input stream contains video or graphics. The device can optimize the processing based on the type. The default state value is 0 (video).</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td> <dl> <dt>0</dt> </dl> </td><td> <p>Video.</p> </td></tr> <tr><td> <dl> <dt>1</dt> </dl> </td><td> <p>Graphics.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA::Type']/*"/>	
        /// <msdn-id>dd318765</msdn-id>	
        /// <unmanaged>unsigned int Type</unmanaged>	
        /// <unmanaged-short>unsigned int Type</unmanaged-short>	
        public bool  Type { 
            get { 
                return 0 != ((_Type >> 0)  &  1);
            }
            set { 
                _Type = (int)((_Type & ~( 1 << 0)) | ( ( (value?1:0) & 1) << 0));
            }
        }
        [FieldOffset(0)]
        internal int _Type;
		
        
        /// <summary>	
        /// <dd> <p>Specifies the RGB color range. The default state value is 0 (full range).</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td> <dl> <dt>0</dt> </dl> </td><td> <p>Full range (0-255).</p> </td></tr> <tr><td> <dl> <dt>1</dt> </dl> </td><td> <p>Limited range (16-235).</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA::RGB_Range']/*"/>	
        /// <msdn-id>dd318765</msdn-id>	
        /// <unmanaged>unsigned int RGB_Range</unmanaged>	
        /// <unmanaged-short>unsigned int RGB_Range</unmanaged-short>	
        public bool  RgbRange { 
            get { 
                return 0 != ((_RgbRange >> 1)  &  1);
            }
            set { 
                _RgbRange = (int)((_RgbRange & ~( 1 << 1)) | ( ( (value?1:0) & 1) << 1));
            }
        }
        [FieldOffset(0)]
        internal int _RgbRange;
		
        
        /// <summary>	
        /// <dd> <p>Specifies the YCbCr transfer matrix. The default state value is 0 (BT.601).</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td> <dl> <dt>0</dt> </dl> </td><td> <p>ITU-R BT.601.</p> </td></tr> <tr><td> <dl> <dt>1</dt> </dl> </td><td> <p>ITU-R BT.709.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA::YCbCr_Matrix']/*"/>	
        /// <msdn-id>dd318765</msdn-id>	
        /// <unmanaged>unsigned int YCbCr_Matrix</unmanaged>	
        /// <unmanaged-short>unsigned int YCbCr_Matrix</unmanaged-short>	
        public bool  YCbCrMatrix { 
            get { 
                return 0 != ((_YCbCrMatrix >> 2)  &  1);
            }
            set { 
                _YCbCrMatrix = (int)((_YCbCrMatrix & ~( 1 << 2)) | ( ( (value?1:0) & 1) << 2));
            }
        }
        [FieldOffset(0)]
        internal int _YCbCrMatrix;
		
        
        /// <summary>	
        /// <dd> <p>Specifies whether the input stream uses conventional YCbCr or extended YCbCr (xvYCC). The default state value is 0 (conventional YCbCr).</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td> <dl> <dt>0</dt> </dl> </td><td> <p>Conventional YCbCr.</p> </td></tr> <tr><td> <dl> <dt>1</dt> </dl> </td><td> <p>Extended YCbCr (xvYCC).</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA::YCbCr_xvYCC']/*"/>	
        /// <msdn-id>dd318765</msdn-id>	
        /// <unmanaged>unsigned int YCbCr_xvYCC</unmanaged>	
        /// <unmanaged-short>unsigned int YCbCr_xvYCC</unmanaged-short>	
        public bool  YCbCrXvYCC { 
            get { 
                return 0 != ((_YCbCrXvYCC >> 3)  &  1);
            }
            set { 
                _YCbCrXvYCC = (int)((_YCbCrXvYCC & ~( 1 << 3)) | ( ( (value?1:0) & 1) << 3));
            }
        }
        [FieldOffset(0)]
        internal int _YCbCrXvYCC;
		
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA::Reserved']/*"/>	
        /// <msdn-id>dd318765</msdn-id>	
        /// <unmanaged>unsigned int Reserved</unmanaged>	
        /// <unmanaged-short>unsigned int Reserved</unmanaged-short>	
        public int  Reserved { 
            get { 
                return (int)((_Reserved >> 4)  &  268435455);
            }
            set { 
                _Reserved = (int)((_Reserved & ~( 268435455 << 4)) | ( (value & 268435455) << 4));
            }
        }
        [FieldOffset(0)]
        internal int _Reserved;
		
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA::Value']/*"/>	
        /// <msdn-id>dd318765</msdn-id>	
        /// <unmanaged>unsigned int Value</unmanaged>	
        /// <unmanaged-short>unsigned int Value</unmanaged-short>	
        [FieldOffset(0)]
        public int Value;
    }
    
    /// <summary>	
    /// <p>Specifies the luma key for an input stream, when using Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>To use this state, the device must support luma keying, indicated by the <strong><see cref="SharpDX.MediaFoundation.DirectX.FeatureCaps.LumaKey"/></strong> capability flag. To query for this capability, call <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorDeviceCaps"/></strong>. If the device supports luma keying, it sets the  <strong><see cref="SharpDX.MediaFoundation.DirectX.FeatureCaps.LumaKey"/></strong> flag in the <strong>FeatureCaps</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.Vpdevcaps"/></strong> structure.</p><p>If the device does not support luma keying, the <strong><see cref="SharpDX.MediaFoundation.DirectX.HDVideoProcessor.SetVideoProcessStreamState"/></strong> method fails for this state.</p><p>If the input format is RGB, the device must also support the <strong><see cref="SharpDX.MediaFoundation.DirectX.InputFormatCaps.RgbLumaKey"/></strong> capability. This capability flag is set in the <strong>InputFormatCaps</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.Vpdevcaps"/></strong> structure. If the flag is not present, the device ignores the luma key value for RGB input.</p><p>The values of <strong>Lower</strong> and <strong>Upper</strong> give the lower and upper bounds of the luma key, using a nominal range of [0...1]. Given a format with <em>n</em> bits per channel, these values are converted to luma values as follows:</p><p><code>val = f * ((1 &lt;&lt; n)-1)</code></p><p>Any pixel whose luma value falls within the upper and lower bounds (inclusive) is treated as transparent.</p><p>For example, if the pixel format uses 8-bit luma, the upper bound is calculated as follows:</p><p><code>BYTE Y = BYTE(max(min(1.0, Upper), 0.0) * 255.0)</code></p><p>Note that the value is clamped to the range [0...1] before multiplying by 255.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_LUMA_KEY_DATA']/*"/>	
    /// <msdn-id>dd318766</msdn-id>	
    /// <unmanaged>DXVAHD_STREAM_STATE_LUMA_KEY_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_STREAM_STATE_LUMA_KEY_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct StreamStateLumaKeyData {	
        
        /// <summary>	
        /// <dd> <p> If <strong>TRUE</strong>, luma keying is enabled. Otherwise, luma keying is disabled. The default value is <strong><see cref="SharpDX.Result.False"/></strong>. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_LUMA_KEY_DATA::Enable']/*"/>	
        /// <msdn-id>dd318766</msdn-id>	
        /// <unmanaged>BOOL Enable</unmanaged>	
        /// <unmanaged-short>BOOL Enable</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Enable;
        
        /// <summary>	
        /// <dd> <p>The lower bound for the luma key. The range is [0?1]. The default state value is 0.0. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_LUMA_KEY_DATA::Lower']/*"/>	
        /// <msdn-id>dd318766</msdn-id>	
        /// <unmanaged>float Lower</unmanaged>	
        /// <unmanaged-short>float Lower</unmanaged-short>	
        public float Lower;
        
        /// <summary>	
        /// <dd> <p>The upper bound for the luma key. The range is [0?1]. The default state value is 0.0. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_LUMA_KEY_DATA::Upper']/*"/>	
        /// <msdn-id>dd318766</msdn-id>	
        /// <unmanaged>float Upper</unmanaged>	
        /// <unmanaged-short>float Upper</unmanaged-short>	
        public float Upper;
    }
    
    /// <summary>	
    /// <p>Specifies the output frame rate for an input stream when using Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The output rate might require the device to convert the frame rate of the input stream. If so, the value of <strong>RepeatFrame</strong> controls whether the device creates interpolated frames or simply repeats input frames.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA']/*"/>	
    /// <msdn-id>dd318767</msdn-id>	
    /// <unmanaged>DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct StreamStateOutputRateData {	
        
        /// <summary>	
        /// <dd> <p>Specifies how the device performs frame-rate conversion, if required. The default state value is <strong><see cref="SharpDX.Result.False"/></strong> (interpolation).</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong>TRUE</strong></dt> </dl> </td><td> <p>The device repeats frames.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Result.False"/></strong></dt> </dl> </td><td> <p>The device interpolates frames.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA::RepeatFrame']/*"/>	
        /// <msdn-id>dd318767</msdn-id>	
        /// <unmanaged>BOOL RepeatFrame</unmanaged>	
        /// <unmanaged-short>BOOL RepeatFrame</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool RepeatFrame;
        
        /// <summary>	
        /// <dd> <p>Specifies the output rate, as a member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.OutputRate"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA::OutputRate']/*"/>	
        /// <msdn-id>dd318767</msdn-id>	
        /// <unmanaged>DXVAHD_OUTPUT_RATE OutputRate</unmanaged>	
        /// <unmanaged-short>DXVAHD_OUTPUT_RATE OutputRate</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.OutputRate OutputRate;
        
        /// <summary>	
        /// <dd> <p>Specifies a custom output rate, as a <strong><see cref="SharpDX.MediaFoundation.DirectX.Rational"/></strong> structure. This member is ignored unless <strong>OutputRate</strong> equals <strong><see cref="SharpDX.MediaFoundation.DirectX.OutputRate.Custom"/></strong>. The default state value is 1/1.</p> <p>To get the list of custom rates supported by the video processor, call <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorCustomRates"/></strong>. If a custom rate is used, it must be taken from this list.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA::CustomRate']/*"/>	
        /// <msdn-id>dd318767</msdn-id>	
        /// <unmanaged>DXVAHD_RATIONAL CustomRate</unmanaged>	
        /// <unmanaged-short>DXVAHD_RATIONAL CustomRate</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Rational CustomRate;
    }
    
    /// <summary>	
    /// <p>Contains the color palette entries for an input stream, when using Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>This stream state is used for input streams that have a palettized color format. Palettized formats with 4 bits per pixel (bpp) use the first 16 entries in the list. Formats with 8 bpp use the first 256 entries.</p><p>If a pixel has a palette index greater than the number of entries, the device treats the pixel as being white with opaque alpha. For full-range RGB, this value will be (255, 255, 255, 255); for YCbCr the value will be (255, 235, 128, 128).</p><p>The caller allocates the <strong>pEntries</strong> array. Set the <strong>Count</strong> member to the number of elements in the array. When retrieving the state data, you can set the <strong>pEntries</strong> member to <strong><c>null</c></strong> to get the number of palette entries. The device will return the count in the <strong>Count</strong> member.</p><p>If the DXVA-HD device does not have the <strong><see cref="SharpDX.MediaFoundation.DirectX.FeatureCaps.AlphaPalette"/></strong> capability, every palette entry must have an alpha value of 0xFF (opaque). Otherwise, an error is returned from <strong><see cref="SharpDX.MediaFoundation.DirectX.HDVideoProcessor.SetVideoProcessStreamState"/></strong>. </p><p>To get the device capabilities, call <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorDeviceCaps"/></strong> and check the <strong>FeatureCaps</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.Vpdevcaps"/></strong> structure.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_PALETTE_DATA']/*"/>	
    /// <msdn-id>dd318768</msdn-id>	
    /// <unmanaged>DXVAHD_STREAM_STATE_PALETTE_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_STREAM_STATE_PALETTE_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct StreamStatePaletteData {	
        
        /// <summary>	
        /// <dd> <p>The number of palette entries. The default state value is 0.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_PALETTE_DATA::Count']/*"/>	
        /// <msdn-id>dd318768</msdn-id>	
        /// <unmanaged>unsigned int Count</unmanaged>	
        /// <unmanaged-short>unsigned int Count</unmanaged-short>	
        public int Count;
        
        /// <summary>	
        /// <dd> <p>A reference to an array of <strong><see cref="SharpDX.ColorBGRA"/></strong> values. For RGB streams, the palette entries use a <see cref="SharpDX.Direct3D9.Format.A8R8G8B8"/> (ARGB-32) representation. For YCbCr streams, the palette entries use an AYUV representation. The alpha channel is used for alpha blending; see <strong><see cref="SharpDX.MediaFoundation.DirectX.StreamStateAlphaData"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_PALETTE_DATA::pEntries']/*"/>	
        /// <msdn-id>dd318768</msdn-id>	
        /// <unmanaged>void* pEntries</unmanaged>	
        /// <unmanaged-short>void pEntries</unmanaged-short>	
        public System.IntPtr PEntries;
    }
    
    /// <summary>	
    /// <p>Contains data for a private stream state, for  a Microsoft DirectX Video Acceleration High Definition (DXVA-HD) input stream. </p>	
    /// </summary>	
    /// <remarks>	
    /// <p>Use this structure for proprietary or device-specific state parameters.</p><p>The caller allocates the <strong>pData</strong> array. Set the <strong>DataSize</strong> member to the size of the array in bytes. When retrieving the state data, you can set the <strong>pData</strong> member to <strong><c>null</c></strong> to get the size of the data. The device will return the size in the <strong>DataSize</strong> member. </p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_PRIVATE_DATA']/*"/>	
    /// <msdn-id>dd318769</msdn-id>	
    /// <unmanaged>DXVAHD_STREAM_STATE_PRIVATE_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_STREAM_STATE_PRIVATE_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct StreamStatePrivateData {	
        
        /// <summary>	
        /// <dd> <p>A <see cref="System.Guid"/> that identifies the private stream state. The following <see cref="System.Guid"/> is defined.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong>DXVAHD_STREAM_STATE_PRIVATE_IVTC</strong></dt> </dl> </td><td> <p>Retrieves statistics about inverse telecine. The state data (<strong>pData</strong>) is a <strong><see cref="SharpDX.MediaFoundation.DirectX.StreamStatePrivateIvtcData"/></strong> structure.</p> </td></tr> </table> <p>?</p> <p>A device can define additional GUIDs for use with custom stream states. The interpretation of the data is then defined by the device.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_PRIVATE_DATA::Guid']/*"/>	
        /// <msdn-id>dd318769</msdn-id>	
        /// <unmanaged>GUID Guid</unmanaged>	
        /// <unmanaged-short>GUID Guid</unmanaged-short>	
        public System.Guid Guid;
        
        /// <summary>	
        /// <dd> <p>The size, in bytes, of the buffer pointed to by the <strong>pData</strong> member.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_PRIVATE_DATA::DataSize']/*"/>	
        /// <msdn-id>dd318769</msdn-id>	
        /// <unmanaged>unsigned int DataSize</unmanaged>	
        /// <unmanaged-short>unsigned int DataSize</unmanaged-short>	
        public int DataSize;
        
        /// <summary>	
        /// <dd> <p>A reference to a buffer that contains the private state data. The DXVA-HD runtime passes this buffer directly to the device, without validation.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_PRIVATE_DATA::pData']/*"/>	
        /// <msdn-id>dd318769</msdn-id>	
        /// <unmanaged>void* pData</unmanaged>	
        /// <unmanaged-short>void pData</unmanaged-short>	
        public System.IntPtr PData;
    }
    
    /// <summary>	
    /// <p>Contains inverse telecine (IVTC) statistics from a Microsoft DirectX Video Acceleration High Definition (DXVA-HD) device.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>If the DXVA-HD device supports IVTC statistics, it can detect when the input video contains telecined frames. You can use this information to enable IVTC in the device.</p><p>To enable IVTC statistics, do the following:</p><ol> <li>Allocate a <strong><see cref="SharpDX.MediaFoundation.DirectX.StreamStatePrivateIvtcData"/></strong> structure and set the <strong>Enable</strong> member to <strong>TRUE</strong>.</li> <li>Initialize a <strong><see cref="SharpDX.MediaFoundation.DirectX.StreamStatePrivateData"/></strong> structure with these values:<ul> <li>Set <strong>Guid</strong> to <strong>DXVAHD_STREAM_STATE_PRIVATE_IVTC</strong>.</li> <li>Set <strong>DataSize</strong> to <code>sizeof(<see cref="SharpDX.MediaFoundation.DirectX.StreamStatePrivateIvtcData"/>)</code>.</li> <li>Set <strong>pData</strong> to point to the <strong><see cref="SharpDX.MediaFoundation.DirectX.StreamStatePrivateIvtcData"/></strong> structure.</li> </ul> </li> <li>Call the <strong><see cref="SharpDX.MediaFoundation.DirectX.HDVideoProcessor.SetVideoProcessStreamState"/></strong> method. Set the <em>State</em> parameter of that method to <strong><see cref="SharpDX.MediaFoundation.DirectX.StreamState.Private"/></strong> and the <em>pData</em> parameter to the address of the <strong><see cref="SharpDX.MediaFoundation.DirectX.StreamStatePrivateData"/></strong> structure.</li> </ol><p>To get the most recent IVTC statistics from the device, call the <strong><see cref="SharpDX.MediaFoundation.DirectX.HDVideoProcessor.GetVideoProcessStreamState"/></strong> method. The state parameter and data buffer are the same.</p><p>Typically, an application would use this feature as follows:</p><ol> <li>Enable IVTC statistics.</li> <li>Begin sending interlaced video frames to the DXVA-HD device.</li> <li>At some point, query the device for the current IVTC statistics.</li> <li>If the device detects telecined frames, use a custom frame rate to perform IVTC. For more information, see <strong><see cref="SharpDX.MediaFoundation.DirectX.CustomRateData"/></strong>.</li> </ol>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA']/*"/>	
    /// <msdn-id>dd318770</msdn-id>	
    /// <unmanaged>DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct StreamStatePrivateIvtcData {	
        
        /// <summary>	
        /// <dd> <p>Specifies whether IVTC statistics are enabled. The default state value is <strong><see cref="SharpDX.Result.False"/></strong>. Setting the value to <strong>TRUE</strong> enables IVTC statistics, and resets all of the IVTC statistical data to zero.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA::Enable']/*"/>	
        /// <msdn-id>dd318770</msdn-id>	
        /// <unmanaged>BOOL Enable</unmanaged>	
        /// <unmanaged-short>BOOL Enable</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Enable;
        
        /// <summary>	
        /// <dd> <p>If the driver detects that the frames are telecined, and is able to perform inverse telecine, this field contains a member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.ItelecineCaps"/></strong> enumeration. Otherwise, the value is 0.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA::ITelecineFlags']/*"/>	
        /// <msdn-id>dd318770</msdn-id>	
        /// <unmanaged>unsigned int ITelecineFlags</unmanaged>	
        /// <unmanaged-short>unsigned int ITelecineFlags</unmanaged-short>	
        public int ITelecineFlags;
        
        /// <summary>	
        /// <dd> <p>The number of consecutive telecined frames that the device has detected.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA::Frames']/*"/>	
        /// <msdn-id>dd318770</msdn-id>	
        /// <unmanaged>unsigned int Frames</unmanaged>	
        /// <unmanaged-short>unsigned int Frames</unmanaged-short>	
        public int Frames;
        
        /// <summary>	
        /// <dd> <p>The index of the most recent input field. The value  of this member equals the most recent value of the <strong>InputFrameOrField</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.StreamData"/></strong> structure.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA::InputField']/*"/>	
        /// <msdn-id>dd318770</msdn-id>	
        /// <unmanaged>unsigned int InputField</unmanaged>	
        /// <unmanaged-short>unsigned int InputField</unmanaged-short>	
        public int InputField;
    }
    
    /// <summary>	
    /// <p>Specifies the source rectangle for an input stream when using Microsoft DirectX Video Acceleration High Definition (DXVA-HD)</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_SOURCE_RECT_DATA']/*"/>	
    /// <msdn-id>dd318771</msdn-id>	
    /// <unmanaged>DXVAHD_STREAM_STATE_SOURCE_RECT_DATA</unmanaged>	
    /// <unmanaged-short>DXVAHD_STREAM_STATE_SOURCE_RECT_DATA</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct StreamStateSourceRectangleData {	
        
        /// <summary>	
        /// <dd> <p><strong></strong>Specifies whether to blit the entire input surface or just the source rectangle. The default state value is <strong><see cref="SharpDX.Result.False"/></strong>.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong>TRUE</strong></dt> </dl> </td><td> <p>Use the source rectangle specified in the <strong>SourceRect</strong> member.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Result.False"/></strong></dt> </dl> </td><td> <p>Blit the entire input surface. Ignore the <strong>SourceRect</strong> member.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_SOURCE_RECT_DATA::Enable']/*"/>	
        /// <msdn-id>dd318771</msdn-id>	
        /// <unmanaged>BOOL Enable</unmanaged>	
        /// <unmanaged-short>BOOL Enable</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Enable;
        
        /// <summary>	
        /// <dd> <p>The <em>source rectangle</em>, which defines the portion of the input sample that is blitted to the destination surface. The source rectangle is given in pixel coordinates, relative to the input surface. The default state value is an empty rectangle, (0, 0, 0, 0).</p> <p>If the <strong>Enable</strong> member is <strong><see cref="SharpDX.Result.False"/></strong>, the <strong>SourceRect</strong> member is ignored.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_STREAM_STATE_SOURCE_RECT_DATA::SourceRect']/*"/>	
        /// <msdn-id>dd318771</msdn-id>	
        /// <unmanaged>RECT SourceRect</unmanaged>	
        /// <unmanaged-short>RECT SourceRect</unmanaged-short>	
        public SharpDX.Rectangle SourceRect;
    }
    
    /// <summary>	
    /// <p>Contains references to functions implemented by a software plug-in for Microsoft DirectX Video Acceleration High Definition (DXVA-HD).</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>If you provide a software plug-in for DXVA-HD, the plug-in must implement a set of functions that are defined by the function reference types in this structure.</p><p>At initialization, the   DXVA-HD runtime calls the plug-in device's <strong>PDXVAHDSW_Plugin</strong> function. This function fills in a <strong><see cref="SharpDX.MediaFoundation.DirectX.SwCallbacks"/></strong> structure with references to  the set of functions that are implemented by the plug-in device. When the application calls DXVA-HD methods, the DXVA-HD runtime calls the corresponding plug-in functions.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS']/*"/>	
    /// <msdn-id>dd318386</msdn-id>	
    /// <unmanaged>DXVAHDSW_CALLBACKS</unmanaged>	
    /// <unmanaged-short>DXVAHDSW_CALLBACKS</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct SwCallbacks {	
        
        /// <summary>	
        /// <dd> <p>Function reference of type <strong>PDXVAHDSW_CreateDevice</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::CreateDevice']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* CreateDevice</unmanaged>	
        /// <unmanaged-short>__function__stdcall CreateDevice</unmanaged-short>	
        public System.IntPtr CreateDevice;
        
        /// <summary>	
        /// <dd> <p>Function reference of type <strong>PDXVAHDSW_ProposeVideoPrivateFormat</strong>. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::ProposeVideoPrivateFormat']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* ProposeVideoPrivateFormat</unmanaged>	
        /// <unmanaged-short>__function__stdcall ProposeVideoPrivateFormat</unmanaged-short>	
        public System.IntPtr ProposeVideoPrivateFormat;
        
        /// <summary>	
        /// <dd> <p>Function reference of type <strong>PDXVAHDSW_GetVideoProcessorDeviceCaps</strong>. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::GetVideoProcessorDeviceCaps']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* GetVideoProcessorDeviceCaps</unmanaged>	
        /// <unmanaged-short>__function__stdcall GetVideoProcessorDeviceCaps</unmanaged-short>	
        public System.IntPtr GetVideoProcessorDeviceCaps;
        
        /// <summary>	
        /// <dd> <p>Function reference of type <strong>PDXVAHDSW_GetVideoProcessorOutputFormats</strong>. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::GetVideoProcessorOutputFormats']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* GetVideoProcessorOutputFormats</unmanaged>	
        /// <unmanaged-short>__function__stdcall GetVideoProcessorOutputFormats</unmanaged-short>	
        public System.IntPtr GetVideoProcessorOutputFormats;
        
        /// <summary>	
        /// <dd> <p>Function reference of type <strong>PDXVAHDSW_GetVideoProcessorInputFormats</strong>. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::GetVideoProcessorInputFormats']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* GetVideoProcessorInputFormats</unmanaged>	
        /// <unmanaged-short>__function__stdcall GetVideoProcessorInputFormats</unmanaged-short>	
        public System.IntPtr GetVideoProcessorInputFormats;
        
        /// <summary>	
        /// <dd> <p>Function reference of type <strong>PDXVAHDSW_GetVideoProcessorCaps</strong>. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::GetVideoProcessorCaps']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* GetVideoProcessorCaps</unmanaged>	
        /// <unmanaged-short>__function__stdcall GetVideoProcessorCaps</unmanaged-short>	
        public System.IntPtr GetVideoProcessorCaps;
        
        /// <summary>	
        /// <dd> <p>Function reference of type <strong>PDXVAHDSW_GetVideoProcessorCustomRates</strong>. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::GetVideoProcessorCustomRates']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* GetVideoProcessorCustomRates</unmanaged>	
        /// <unmanaged-short>__function__stdcall GetVideoProcessorCustomRates</unmanaged-short>	
        public System.IntPtr GetVideoProcessorCustomRates;
        
        /// <summary>	
        /// <dd> <p> Function reference of type <strong>PDXVAHDSW_GetVideoProcessorFilterRange</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::GetVideoProcessorFilterRange']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* GetVideoProcessorFilterRange</unmanaged>	
        /// <unmanaged-short>__function__stdcall GetVideoProcessorFilterRange</unmanaged-short>	
        public System.IntPtr GetVideoProcessorFilterRange;
        
        /// <summary>	
        /// <dd> <p> Function reference of type <strong>PDXVAHDSW_DestroyDevice</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::DestroyDevice']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* DestroyDevice</unmanaged>	
        /// <unmanaged-short>__function__stdcall DestroyDevice</unmanaged-short>	
        public System.IntPtr DestroyDevice;
        
        /// <summary>	
        /// <dd> <p> Function reference of type <strong>PDXVAHDSW_CreateVideoProcessor</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::CreateVideoProcessor']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* CreateVideoProcessor</unmanaged>	
        /// <unmanaged-short>__function__stdcall CreateVideoProcessor</unmanaged-short>	
        public System.IntPtr CreateVideoProcessor;
        
        /// <summary>	
        /// <dd> <p> Function reference of type <strong>PDXVAHDSW_SetVideoProcessBltState</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::SetVideoProcessBltState']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* SetVideoProcessBltState</unmanaged>	
        /// <unmanaged-short>__function__stdcall SetVideoProcessBltState</unmanaged-short>	
        public System.IntPtr SetVideoProcessBltState;
        
        /// <summary>	
        /// <dd> <p>Function reference of type <strong>PDXVAHDSW_GetVideoProcessBltStatePrivate</strong>. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::GetVideoProcessBltStatePrivate']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* GetVideoProcessBltStatePrivate</unmanaged>	
        /// <unmanaged-short>__function__stdcall GetVideoProcessBltStatePrivate</unmanaged-short>	
        public System.IntPtr GetVideoProcessBltStatePrivate;
        
        /// <summary>	
        /// <dd> <p> Function reference of type <strong>PDXVAHDSW_SetVideoProcessStreamState</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::SetVideoProcessStreamState']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* SetVideoProcessStreamState</unmanaged>	
        /// <unmanaged-short>__function__stdcall SetVideoProcessStreamState</unmanaged-short>	
        public System.IntPtr SetVideoProcessStreamState;
        
        /// <summary>	
        /// <dd> <p> Function reference of type <strong>PDXVAHDSW_GetVideoProcessStreamStatePrivate</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::GetVideoProcessStreamStatePrivate']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* GetVideoProcessStreamStatePrivate</unmanaged>	
        /// <unmanaged-short>__function__stdcall GetVideoProcessStreamStatePrivate</unmanaged-short>	
        public System.IntPtr GetVideoProcessStreamStatePrivate;
        
        /// <summary>	
        /// <dd> <p> Function reference of type <strong>PDXVAHDSW_VideoProcessBltHD</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::VideoProcessBltHD']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* VideoProcessBltHD</unmanaged>	
        /// <unmanaged-short>__function__stdcall VideoProcessBltHD</unmanaged-short>	
        public System.IntPtr VideoProcessBltHD;
        
        /// <summary>	
        /// <dd> <p> Function reference of type <strong>PDXVAHDSW_DestroyVideoProcessor</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHDSW_CALLBACKS::DestroyVideoProcessor']/*"/>	
        /// <msdn-id>dd318386</msdn-id>	
        /// <unmanaged>__function__stdcall* DestroyVideoProcessor</unmanaged>	
        /// <unmanaged-short>__function__stdcall DestroyVideoProcessor</unmanaged-short>	
        public System.IntPtr DestroyVideoProcessor;
    }
    
    /// <summary>	
    /// <p> </p><p>Defines the range of supported values for a DirectX Video Acceleration (DXVA) operation.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>All values in this structure are specified as <strong><see cref="SharpDX.MediaFoundation.DirectX.Fixed32"/></strong> structures.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ValueRange']/*"/>	
    /// <msdn-id>ms704572</msdn-id>	
    /// <unmanaged>DXVA2_ValueRange</unmanaged>	
    /// <unmanaged-short>DXVA2_ValueRange</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct ValueRange {	
        
        /// <summary>	
        /// <dd> <p>Minimum supported value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ValueRange::MinValue']/*"/>	
        /// <msdn-id>ms704572</msdn-id>	
        /// <unmanaged>DXVA2_Fixed32 MinValue</unmanaged>	
        /// <unmanaged-short>DXVA2_Fixed32 MinValue</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Fixed32 MinValue;
        
        /// <summary>	
        /// <dd> <p>Maximum supported value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ValueRange::MaxValue']/*"/>	
        /// <msdn-id>ms704572</msdn-id>	
        /// <unmanaged>DXVA2_Fixed32 MaxValue</unmanaged>	
        /// <unmanaged-short>DXVA2_Fixed32 MaxValue</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Fixed32 MaxValue;
        
        /// <summary>	
        /// <dd> <p>Default value.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ValueRange::DefaultValue']/*"/>	
        /// <msdn-id>ms704572</msdn-id>	
        /// <unmanaged>DXVA2_Fixed32 DefaultValue</unmanaged>	
        /// <unmanaged-short>DXVA2_Fixed32 DefaultValue</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Fixed32 DefaultValue;
        
        /// <summary>	
        /// <dd> <p>Minimum increment between values.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_ValueRange::StepSize']/*"/>	
        /// <msdn-id>ms704572</msdn-id>	
        /// <unmanaged>DXVA2_Fixed32 StepSize</unmanaged>	
        /// <unmanaged-short>DXVA2_Fixed32 StepSize</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Fixed32 StepSize;
    }
    
    /// <summary>	
    /// <p> Describes a video stream for a DXVA decoder device or video processor device. </p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The <strong>InputSampleFreq</strong> member gives the frame rate of the decoded video stream, as received by the video renderer. The <strong>OutputFrameFreq</strong> member gives the frame rate of the video that is displayed after deinterlacing. If the input video is interlaced and the samples contain interleaved fields, the output frame rate is twice the input frame rate. If the input video is progressive or contains single fields, the output frame rate is the same as the input frame rate.</p><p>Decoders should set the values of <strong>InputSampleFreq</strong> and <strong>OutputFrameFreq</strong> if the frame rate is known. Otherwise, set these members to 0/0 to indicate an unknown frame rate.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoDesc']/*"/>	
    /// <msdn-id>ms694235</msdn-id>	
    /// <unmanaged>DXVA2_VideoDesc</unmanaged>	
    /// <unmanaged-short>DXVA2_VideoDesc</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct VideoDesc {	
        
        /// <summary>	
        /// <dd> <p> Width of the video frame, in pixels. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoDesc::SampleWidth']/*"/>	
        /// <msdn-id>ms694235</msdn-id>	
        /// <unmanaged>unsigned int SampleWidth</unmanaged>	
        /// <unmanaged-short>unsigned int SampleWidth</unmanaged-short>	
        public int SampleWidth;
        
        /// <summary>	
        /// <dd> <p> Height of the video frame, in pixels. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoDesc::SampleHeight']/*"/>	
        /// <msdn-id>ms694235</msdn-id>	
        /// <unmanaged>unsigned int SampleHeight</unmanaged>	
        /// <unmanaged-short>unsigned int SampleHeight</unmanaged-short>	
        public int SampleHeight;
        
        /// <summary>	
        /// <dd> <p> Additional details about the video format, specified as a <strong><see cref="SharpDX.MediaFoundation.DirectX.ExtendedFormat"/></strong> structure. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoDesc::SampleFormat']/*"/>	
        /// <msdn-id>ms694235</msdn-id>	
        /// <unmanaged>DXVA2_ExtendedFormat SampleFormat</unmanaged>	
        /// <unmanaged-short>DXVA2_ExtendedFormat SampleFormat</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.ExtendedFormat SampleFormat;
        
        /// <summary>	
        /// <dd> <p> Surface format, specified as a <strong><see cref="SharpDX.Direct3D9.Format"/></strong> value or FOURCC code. A FOURCC code can be constructed using the <strong><see cref="SharpDX.Direct3D9.Format"/></strong> or <strong>MAKEFOURCC</strong> macros. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoDesc::Format']/*"/>	
        /// <msdn-id>ms694235</msdn-id>	
        /// <unmanaged>D3DFORMAT Format</unmanaged>	
        /// <unmanaged-short>D3DFORMAT Format</unmanaged-short>	
        public SharpDX.Direct3D9.Format Format;
        
        /// <summary>	
        /// <dd> <p> Frame rate of the input video stream, specified as a <strong><see cref="SharpDX.MediaFoundation.DirectX.Frequency"/></strong> structure. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoDesc::InputSampleFreq']/*"/>	
        /// <msdn-id>ms694235</msdn-id>	
        /// <unmanaged>DXVA2_Frequency InputSampleFreq</unmanaged>	
        /// <unmanaged-short>DXVA2_Frequency InputSampleFreq</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Frequency InputSampleFreq;
        
        /// <summary>	
        /// <dd> <p> Frame rate of the output video, specified as a <strong><see cref="SharpDX.MediaFoundation.DirectX.Frequency"/></strong> structure. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoDesc::OutputFrameFreq']/*"/>	
        /// <msdn-id>ms694235</msdn-id>	
        /// <unmanaged>DXVA2_Frequency OutputFrameFreq</unmanaged>	
        /// <unmanaged-short>DXVA2_Frequency OutputFrameFreq</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Frequency OutputFrameFreq;
        
        /// <summary>	
        /// <dd> <p> Level of data protection required when the user accessible bus (UAB) is present. If <strong>TRUE</strong>, the video must be protected when a UAB is present. If <strong><see cref="SharpDX.Result.False"/></strong>, the video is not required to be protected. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoDesc::UABProtectionLevel']/*"/>	
        /// <msdn-id>ms694235</msdn-id>	
        /// <unmanaged>unsigned int UABProtectionLevel</unmanaged>	
        /// <unmanaged-short>unsigned int UABProtectionLevel</unmanaged-short>	
        public int UABProtectionLevel;
        
        /// <summary>	
        /// <dd> <p> Reserved. Must be zero. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoDesc::Reserved']/*"/>	
        /// <msdn-id>ms694235</msdn-id>	
        /// <unmanaged>unsigned int Reserved</unmanaged>	
        /// <unmanaged-short>unsigned int Reserved</unmanaged-short>	
        public int Reserved;
    }
    
    /// <summary>	
    /// <p> </p><p>Contains parameters for the <strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessor.VideoProcessBlt"/></strong> method.</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessBltParams']/*"/>	
    /// <msdn-id>ms698741</msdn-id>	
    /// <unmanaged>DXVA2_VideoProcessBltParams</unmanaged>	
    /// <unmanaged-short>DXVA2_VideoProcessBltParams</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 8 )]
    public  partial struct VideoProcessBltParams {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessBltParams::TargetFrame']/*"/>	
        /// <msdn-id>ms698741</msdn-id>	
        /// <unmanaged>longlong TargetFrame</unmanaged>	
        /// <unmanaged-short>longlong TargetFrame</unmanaged-short>	
        public long TargetFrame;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessBltParams::TargetRect']/*"/>	
        /// <msdn-id>ms698741</msdn-id>	
        /// <unmanaged>RECT TargetRect</unmanaged>	
        /// <unmanaged-short>RECT TargetRect</unmanaged-short>	
        public SharpDX.Rectangle TargetRect;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessBltParams::ConstrictionSize']/*"/>	
        /// <msdn-id>ms698741</msdn-id>	
        /// <unmanaged>SIZE ConstrictionSize</unmanaged>	
        /// <unmanaged-short>SIZE ConstrictionSize</unmanaged-short>	
        public SharpDX.Size2 ConstrictionSize;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessBltParams::StreamingFlags']/*"/>	
        /// <msdn-id>ms698741</msdn-id>	
        /// <unmanaged>unsigned int StreamingFlags</unmanaged>	
        /// <unmanaged-short>unsigned int StreamingFlags</unmanaged-short>	
        public int StreamingFlags;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessBltParams::BackgroundColor']/*"/>	
        /// <msdn-id>ms698741</msdn-id>	
        /// <unmanaged>DXVA2_AYUVSample16 BackgroundColor</unmanaged>	
        /// <unmanaged-short>DXVA2_AYUVSample16 BackgroundColor</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.AYUVSample16 BackgroundColor;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessBltParams::DestFormat']/*"/>	
        /// <msdn-id>ms698741</msdn-id>	
        /// <unmanaged>DXVA2_ExtendedFormat DestFormat</unmanaged>	
        /// <unmanaged-short>DXVA2_ExtendedFormat DestFormat</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.ExtendedFormat DestFormat;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessBltParams::ProcAmpValues']/*"/>	
        /// <msdn-id>ms698741</msdn-id>	
        /// <unmanaged>DXVA2_ProcAmpValues ProcAmpValues</unmanaged>	
        /// <unmanaged-short>DXVA2_ProcAmpValues ProcAmpValues</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.ProcAmpValues ProcAmpValues;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessBltParams::Alpha']/*"/>	
        /// <msdn-id>ms698741</msdn-id>	
        /// <unmanaged>DXVA2_Fixed32 Alpha</unmanaged>	
        /// <unmanaged-short>DXVA2_Fixed32 Alpha</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Fixed32 Alpha;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessBltParams::NoiseFilterLuma']/*"/>	
        /// <msdn-id>ms698741</msdn-id>	
        /// <unmanaged>DXVA2_FilterValues NoiseFilterLuma</unmanaged>	
        /// <unmanaged-short>DXVA2_FilterValues NoiseFilterLuma</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.FilterValues NoiseFilterLuma;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessBltParams::NoiseFilterChroma']/*"/>	
        /// <msdn-id>ms698741</msdn-id>	
        /// <unmanaged>DXVA2_FilterValues NoiseFilterChroma</unmanaged>	
        /// <unmanaged-short>DXVA2_FilterValues NoiseFilterChroma</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.FilterValues NoiseFilterChroma;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessBltParams::DetailFilterLuma']/*"/>	
        /// <msdn-id>ms698741</msdn-id>	
        /// <unmanaged>DXVA2_FilterValues DetailFilterLuma</unmanaged>	
        /// <unmanaged-short>DXVA2_FilterValues DetailFilterLuma</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.FilterValues DetailFilterLuma;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessBltParams::DetailFilterChroma']/*"/>	
        /// <msdn-id>ms698741</msdn-id>	
        /// <unmanaged>DXVA2_FilterValues DetailFilterChroma</unmanaged>	
        /// <unmanaged-short>DXVA2_FilterValues DetailFilterChroma</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.FilterValues DetailFilterChroma;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessBltParams::DestData']/*"/>	
        /// <msdn-id>ms698741</msdn-id>	
        /// <unmanaged>unsigned int DestData</unmanaged>	
        /// <unmanaged-short>unsigned int DestData</unmanaged-short>	
        public int DestData;
    }
    
    /// <summary>	
    /// <p> </p><p>Describes the capabilities of a DirectX Video Acceleration (DVXA) video processor mode.</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessorCaps']/*"/>	
    /// <msdn-id>ms703795</msdn-id>	
    /// <unmanaged>DXVA2_VideoProcessorCaps</unmanaged>	
    /// <unmanaged-short>DXVA2_VideoProcessorCaps</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct VideoProcessorCaps {	
        
        /// <summary>	
        /// <dd> <p>Identifies the type of device. The following values are defined.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoDeviceCapabilities.EmulatedDXVA1"/></strong></dt> </dl> </td><td> <p>DXVA 2.0 video processing is emulated by using DXVA 1.0. An emulated device may be missing significant processing capabilities and have lower image quality and performance.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoDeviceCapabilities.HardwareDevice"/></strong></dt> </dl> </td><td> <p>Hardware device.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoDeviceCapabilities.SoftwareDevice"/></strong></dt> </dl> </td><td> <p>Software device.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessorCaps::DeviceCaps']/*"/>	
        /// <msdn-id>ms703795</msdn-id>	
        /// <unmanaged>unsigned int DeviceCaps</unmanaged>	
        /// <unmanaged-short>unsigned int DeviceCaps</unmanaged-short>	
        public int DeviceCaps;
        
        /// <summary>	
        /// <dd> <p>The Direct3D memory pool used by the device.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessorCaps::InputPool']/*"/>	
        /// <msdn-id>ms703795</msdn-id>	
        /// <unmanaged>D3DPOOL InputPool</unmanaged>	
        /// <unmanaged-short>D3DPOOL InputPool</unmanaged-short>	
        public SharpDX.Direct3D9.Pool InputPool;
        
        /// <summary>	
        /// <dd> <p>Number of forward reference samples the device needs to perform deinterlacing. For the bob, progressive scan, and software devices, the value is zero.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessorCaps::NumForwardRefSamples']/*"/>	
        /// <msdn-id>ms703795</msdn-id>	
        /// <unmanaged>unsigned int NumForwardRefSamples</unmanaged>	
        /// <unmanaged-short>unsigned int NumForwardRefSamples</unmanaged-short>	
        public int NumForwardRefSamples;
        
        /// <summary>	
        /// <dd> <p>Number of backward reference samples the device needs to perform deinterlacing. For the bob, progressive scan, and software devices, the value is zero.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessorCaps::NumBackwardRefSamples']/*"/>	
        /// <msdn-id>ms703795</msdn-id>	
        /// <unmanaged>unsigned int NumBackwardRefSamples</unmanaged>	
        /// <unmanaged-short>unsigned int NumBackwardRefSamples</unmanaged-short>	
        public int NumBackwardRefSamples;
        
        /// <summary>	
        /// <dd> <p>Reserved. Must be zero.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessorCaps::Reserved']/*"/>	
        /// <msdn-id>ms703795</msdn-id>	
        /// <unmanaged>unsigned int Reserved</unmanaged>	
        /// <unmanaged-short>unsigned int Reserved</unmanaged-short>	
        public int Reserved;
        
        /// <summary>	
        /// <dd> <p>Identifies the deinteracing technique used by the device. This value is a bitwise <strong>OR</strong> of one or more of the following flags.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.DeinterlaceTechnology.Unknown"/></strong></dt> </dl> </td><td> <p>The algorithm is unknown or proprietary.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.DeinterlaceTechnology.BOBLineReplicate"/></strong></dt> </dl> </td><td> <p>The algorithm creates missing lines by repeating the line either above or below the missing line. This algorithm produces a jagged image and is not recommended.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.DeinterlaceTechnology.BOBVerticalStretch"/></strong></dt> </dl> </td><td> <p>The algorithm creates missing lines by averaging two lines. Slight vertical adjustments are made so that the resulting image does not bob up and down.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.DeinterlaceTechnology.BOBVerticalStretch4Tap"/></strong></dt> </dl> </td><td> <p>The algorithm creates missing lines by applying a [?1, 9, 9, ?1]/16 filter across four lines. Slight vertical adjustments are made so that the resulting image does not bob up and down.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.DeinterlaceTechnology.MedianFiltering"/></strong></dt> </dl> </td><td> <p>The algorithm uses median filtering to recreate the pixels in the missing lines.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.DeinterlaceTechnology.EdgeFiltering"/></strong></dt> </dl> </td><td> <p>The algorithm uses an edge filter to create the missing lines. In this process, spatial directional filters are applied to determine the orientation of edges in the picture content. Missing pixels are created by filtering along (rather than across) the detected edges.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.DeinterlaceTechnology.FieldAdaptive"/></strong></dt> </dl> </td><td> <p>The algorithm uses spatial or temporal interpolation, switching between the two on a field-by-field basis, depending on the amount of motion.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.DeinterlaceTechnology.PixelAdaptive"/></strong></dt> </dl> </td><td> <p>The algorithm uses spatial or temporal interpolation, switching between the two on a pixel-by-pixel basis, depending on the amount of motion.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.DeinterlaceTechnology.MotionVectorSteered"/></strong></dt> </dl> </td><td> <p>The algorithm identifies objects within a sequence of video fields. Before it recreates the missing pixels, it aligns the movement axes of the individual objects in the scene to make them parallel with the time axis.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.DeinterlaceTechnology.InverseTelecine"/></strong></dt> </dl> </td><td> <p>The device can undo the 3:2 pulldown process used in telecine.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessorCaps::DeinterlaceTechnology']/*"/>	
        /// <msdn-id>ms703795</msdn-id>	
        /// <unmanaged>unsigned int DeinterlaceTechnology</unmanaged>	
        /// <unmanaged-short>unsigned int DeinterlaceTechnology</unmanaged-short>	
        public int DeinterlaceTechnology;
        
        /// <summary>	
        /// <dd> <p>Specifies the available video processor (ProcAmp) operations. The value is a bitwise OR of <strong>ProcAmp Settings</strong> constants.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessorCaps::ProcAmpControlCaps']/*"/>	
        /// <msdn-id>ms703795</msdn-id>	
        /// <unmanaged>unsigned int ProcAmpControlCaps</unmanaged>	
        /// <unmanaged-short>unsigned int ProcAmpControlCaps</unmanaged-short>	
        public int ProcAmpControlCaps;
        
        /// <summary>	
        /// <dd> <p>Specifies operations that the device can perform concurrently with the <strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessor.VideoProcessBlt"/></strong> operation. The value is a bitwise <strong>OR</strong> of the following flags.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.Yuv2rgb"/></strong></dt> </dl> </td><td> <p>The device can convert the video from YUV color space to RGB color space, with at least 8 bits of precision for each RGB component.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.StretchX"/></strong></dt> </dl> </td><td> <p>The device can stretch or shrink the video horizontally. If this capability is present, aspect ratio correction can be performed at the same time as deinterlacing.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.StretchY"/></strong></dt> </dl> </td><td> <p>The device can stretch or shrink the video vertically. If this capability is present, image resizing and aspect ratio correction can be performed at the same time.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.AlphaBlend"/></strong></dt> </dl> </td><td> <p>The device can alpha blend the video.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.SubRects"/></strong></dt> </dl> </td><td> <p>The device can operate on a subrectangle of the video frame. If this capability is present, source images can be cropped before further processing occurs.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.SubStreams"/></strong></dt> </dl> </td><td> <p>The device can accept substreams in addition to the primary video stream, and can composite them.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.SubStreamsExtended"/></strong></dt> </dl> </td><td> <p>The device can perform color adjustments on the primary video stream and substreams, at the same time that it deinterlaces the video and composites the substreams. The destination color space is defined in the <strong>DestFormat</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessBltParams"/></strong> structure. The source color space for each stream is defined in the SampleFormat member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.VideoSample"/></strong> structure.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.YUV2RGBExtended"/></strong></dt> </dl> </td><td> <p>The device can convert the video from YUV to RGB color space when it writes the deinterlaced and composited pixels to the destination surface.</p> <p>An RGB destination surface could be an off-screen surface, texture, Direct3D render target, or combined texture/render target surface. An RGB destination surface must use at least 8 bits for each color channel.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.AlphaBlendExtended"/></strong></dt> </dl> </td><td> <p>The device can perform an alpha blend operation with the destination surface when it writes the deinterlaced and composited pixels to the destination surface.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.Constriction"/></strong></dt> </dl> </td><td> <p>The device can downsample the output frame, as specified by the <strong>ConstrictionSize</strong> member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessBltParams"/></strong> structure.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.NoiseFilter"/></strong></dt> </dl> </td><td> <p>The device can perform noise filtering.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.DetailFilter"/></strong></dt> </dl> </td><td> <p>The device can perform detail filtering.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.PlanarAlpha"/></strong></dt> </dl> </td><td> <p>The device can perform a constant alpha blend to the entire video stream when it composites the video stream and substreams.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.LinearScaling"/></strong></dt> </dl> </td><td> <p>The device can perform accurate linear RGB scaling, rather than performing them in nonlinear gamma space.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.GammaCompensated"/></strong></dt> </dl> </td><td> <p>The device can correct the image to compensate for artifacts introduced when performing scaling in nonlinear gamma space.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessorOperations.MaintainsOriginalFieldData"/></strong></dt> </dl> </td><td> <p>The deinterlacing algorithm preserves the original field lines from the interlaced field picture, unless scaling is also applied.</p> <p>For example, in deinterlacing algorithms such as bob and median filtering, the device copies the original field into every other scan line and then applies a filter to reconstruct the missing scan lines. As a result, the original field can be recovered by discarding the scan lines that were interpolated.</p> <p>If the image is scaled vertically, however, the original field lines cannot be recovered. If the image is scaled horizontally (but not vertically), the resulting field lines will be equivalent to scaling the original field picture. (In other words, discarding the interpolated scan lines will yield the same result as stretching the original picture without deinterlacing.)</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessorCaps::VideoProcessorOperations']/*"/>	
        /// <msdn-id>ms703795</msdn-id>	
        /// <unmanaged>unsigned int VideoProcessorOperations</unmanaged>	
        /// <unmanaged-short>unsigned int VideoProcessorOperations</unmanaged-short>	
        public int VideoProcessorOperations;
        
        /// <summary>	
        /// <dd> <p>Specifies the supported noise filters. The value is a bitwise <strong>OR</strong> of the following flags.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.NoiseFilterTechnology.Unsupported"/></strong></dt> </dl> </td><td> <p>Noise filtering is not supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.NoiseFilterTechnology.Unknown"/></strong></dt> </dl> </td><td> <p>Unknown or proprietary filter.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.NoiseFilterTechnology.Median"/></strong></dt> </dl> </td><td> <p>Median filter.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.NoiseFilterTechnology.Temporal"/></strong></dt> </dl> </td><td> <p>Temporal filter.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.NoiseFilterTechnology.BlockNoise"/></strong></dt> </dl> </td><td> <p>Block noise filter.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.NoiseFilterTechnology.MosquitoNoise"/></strong></dt> </dl> </td><td> <p>Mosquito noise filter.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessorCaps::NoiseFilterTechnology']/*"/>	
        /// <msdn-id>ms703795</msdn-id>	
        /// <unmanaged>unsigned int NoiseFilterTechnology</unmanaged>	
        /// <unmanaged-short>unsigned int NoiseFilterTechnology</unmanaged-short>	
        public int NoiseFilterTechnology;
        
        /// <summary>	
        /// <dd> <p>Specifies the supported detail filters. The value is a bitwise <strong>OR</strong> of the following flags.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.DetailFilterTechnology.DetailTechUnsupported"/></strong></dt> </dl> </td><td> <p>Detail filtering is not supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.DetailFilterTechnology.DetailTechUnknown"/></strong></dt> </dl> </td><td> <p>Unknown or proprietary filter.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.DetailFilterTechnology.DetailTechEdge"/></strong></dt> </dl> </td><td> <p>Edge filter.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.MediaFoundation.DirectX.DetailFilterTechnology.DetailTechSharpening"/></strong></dt> </dl> </td><td> <p>Sharpen filter.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoProcessorCaps::DetailFilterTechnology']/*"/>	
        /// <msdn-id>ms703795</msdn-id>	
        /// <unmanaged>unsigned int DetailFilterTechnology</unmanaged>	
        /// <unmanaged-short>unsigned int DetailFilterTechnology</unmanaged-short>	
        public int DetailFilterTechnology;
    }
    
    /// <summary>	
    /// <p> </p><p>Specifies an input sample for the <strong><see cref="SharpDX.MediaFoundation.DirectX.VideoProcessor.VideoProcessBlt"/></strong> method.</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoSample']/*"/>	
    /// <msdn-id>ms693598</msdn-id>	
    /// <unmanaged>DXVA2_VideoSample</unmanaged>	
    /// <unmanaged-short>DXVA2_VideoSample</unmanaged-short>	
    public  partial struct VideoSample {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoSample::Start']/*"/>	
        /// <msdn-id>ms693598</msdn-id>	
        /// <unmanaged>longlong Start</unmanaged>	
        /// <unmanaged-short>longlong Start</unmanaged-short>	
        public long Start;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoSample::End']/*"/>	
        /// <msdn-id>ms693598</msdn-id>	
        /// <unmanaged>longlong End</unmanaged>	
        /// <unmanaged-short>longlong End</unmanaged-short>	
        public long End;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoSample::SampleFormat']/*"/>	
        /// <msdn-id>ms693598</msdn-id>	
        /// <unmanaged>DXVA2_ExtendedFormat SampleFormat</unmanaged>	
        /// <unmanaged-short>DXVA2_ExtendedFormat SampleFormat</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.ExtendedFormat SampleFormat;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoSample::SrcSurface']/*"/>	
        /// <msdn-id>ms693598</msdn-id>	
        /// <unmanaged>IDirect3DSurface9* SrcSurface</unmanaged>	
        /// <unmanaged-short>IDirect3DSurface9 SrcSurface</unmanaged-short>	
        public System.IntPtr SrcSurface;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoSample::SrcRect']/*"/>	
        /// <msdn-id>ms693598</msdn-id>	
        /// <unmanaged>RECT SrcRect</unmanaged>	
        /// <unmanaged-short>RECT SrcRect</unmanaged-short>	
        public SharpDX.Rectangle SrcRect;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoSample::DstRect']/*"/>	
        /// <msdn-id>ms693598</msdn-id>	
        /// <unmanaged>RECT DstRect</unmanaged>	
        /// <unmanaged-short>RECT DstRect</unmanaged-short>	
        public SharpDX.Rectangle DstRect;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoSample::Pal']/*"/>	
        /// <msdn-id>ms693598</msdn-id>	
        /// <unmanaged>DXVA2_AYUVSample8 Pal[16]</unmanaged>	
        /// <unmanaged-short>DXVA2_AYUVSample8 Pal</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.AYUVSample8[] Pal { 
            get { return _Pal ?? (_Pal = new SharpDX.MediaFoundation.DirectX.AYUVSample8[16]);}
        }
        internal SharpDX.MediaFoundation.DirectX.AYUVSample8[] _Pal;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoSample::PlanarAlpha']/*"/>	
        /// <msdn-id>ms693598</msdn-id>	
        /// <unmanaged>DXVA2_Fixed32 PlanarAlpha</unmanaged>	
        /// <unmanaged-short>DXVA2_Fixed32 PlanarAlpha</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.Fixed32 PlanarAlpha;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVA2_VideoSample::SampleData']/*"/>	
        /// <msdn-id>ms693598</msdn-id>	
        /// <unmanaged>unsigned int SampleData</unmanaged>	
        /// <unmanaged-short>unsigned int SampleData</unmanaged-short>	
        public int SampleData;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential, Pack = 8 )]
        internal partial struct __Native {	
            public long Start;
            public long End;
            public SharpDX.MediaFoundation.DirectX.ExtendedFormat SampleFormat;
            public System.IntPtr SrcSurface;
            public SharpDX.Rectangle SrcRect;
            public SharpDX.Rectangle DstRect;
            public SharpDX.MediaFoundation.DirectX.AYUVSample8 Pal;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal1;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal2;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal3;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal4;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal5;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal6;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal7;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal8;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal9;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal10;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal11;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal12;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal13;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal14;
            SharpDX.MediaFoundation.DirectX.AYUVSample8 __Pal15;
            public SharpDX.MediaFoundation.DirectX.Fixed32 PlanarAlpha;
            public int SampleData;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Start = @ref.Start;
            this.End = @ref.End;
            this.SampleFormat = @ref.SampleFormat;
            this.SrcSurface = @ref.SrcSurface;
            this.SrcRect = @ref.SrcRect;
            this.DstRect = @ref.DstRect;
            fixed (void* __to = &this.Pal[0]) fixed (void* __from = &@ref.Pal) SharpDX.Utilities.CopyMemory((IntPtr) __to, (IntPtr) __from, 16*sizeof ( SharpDX.MediaFoundation.DirectX.AYUVSample8));
            this.PlanarAlpha = @ref.PlanarAlpha;
            this.SampleData = @ref.SampleData;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Start = this.Start;
            @ref.End = this.End;
            @ref.SampleFormat = this.SampleFormat;
            @ref.SrcSurface = this.SrcSurface;
            @ref.SrcRect = this.SrcRect;
            @ref.DstRect = this.DstRect;
            fixed (void* __to = &@ref.Pal) fixed (void* __from = &this.Pal[0]) SharpDX.Utilities.CopyMemory((IntPtr) __to, (IntPtr) __from, 16*sizeof ( SharpDX.MediaFoundation.DirectX.AYUVSample8));
            @ref.PlanarAlpha = this.PlanarAlpha;
            @ref.SampleData = this.SampleData;
		
		}
    }
    
    /// <summary>	
    /// <p>Specifies the capabilities of the Microsoft DirectX Video Acceleration High Definition (DXVA-HD) video processor.</p>	
    /// </summary>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPCAPS']/*"/>	
    /// <msdn-id>dd318773</msdn-id>	
    /// <unmanaged>DXVAHD_VPCAPS</unmanaged>	
    /// <unmanaged-short>DXVAHD_VPCAPS</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct Vpcaps {	
        
        /// <summary>	
        /// <dd> <p>A <see cref="System.Guid"/> that identifies the video processor. This <see cref="System.Guid"/> is defined by the device, and is used in various <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice"/></strong> methods to specify the video processor.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPCAPS::VPGuid']/*"/>	
        /// <msdn-id>dd318773</msdn-id>	
        /// <unmanaged>GUID VPGuid</unmanaged>	
        /// <unmanaged-short>GUID VPGuid</unmanaged-short>	
        public System.Guid VPGuid;
        
        /// <summary>	
        /// <dd> <p>The number of past reference frames required to perform the optimal video processing.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPCAPS::PastFrames']/*"/>	
        /// <msdn-id>dd318773</msdn-id>	
        /// <unmanaged>unsigned int PastFrames</unmanaged>	
        /// <unmanaged-short>unsigned int PastFrames</unmanaged-short>	
        public int PastFrames;
        
        /// <summary>	
        /// <dd> <p>The number of future reference frames required to perform the optimal video processing.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPCAPS::FutureFrames']/*"/>	
        /// <msdn-id>dd318773</msdn-id>	
        /// <unmanaged>unsigned int FutureFrames</unmanaged>	
        /// <unmanaged-short>unsigned int FutureFrames</unmanaged-short>	
        public int FutureFrames;
        
        /// <summary>	
        /// <dd> <p>A bitwise <strong>OR</strong> of zero or more flags from the <strong><see cref="SharpDX.MediaFoundation.DirectX.ProcessorCaps"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPCAPS::ProcessorCaps']/*"/>	
        /// <msdn-id>dd318773</msdn-id>	
        /// <unmanaged>unsigned int ProcessorCaps</unmanaged>	
        /// <unmanaged-short>unsigned int ProcessorCaps</unmanaged-short>	
        public int ProcessorCaps;
        
        /// <summary>	
        /// <dd> <p>A bitwise <strong>OR</strong> of zero or more flags from the <strong><see cref="SharpDX.MediaFoundation.DirectX.ItelecineCaps"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPCAPS::ITelecineCaps']/*"/>	
        /// <msdn-id>dd318773</msdn-id>	
        /// <unmanaged>unsigned int ITelecineCaps</unmanaged>	
        /// <unmanaged-short>unsigned int ITelecineCaps</unmanaged-short>	
        public int ITelecineCaps;
        
        /// <summary>	
        /// <dd> <p>The number of custom output frame rates. To get the list of custom frame rates, call the <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorCustomRates"/></strong> method. Custom frame rates are used for frame-rate conversion and inverse telecine.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPCAPS::CustomRateCount']/*"/>	
        /// <msdn-id>dd318773</msdn-id>	
        /// <unmanaged>unsigned int CustomRateCount</unmanaged>	
        /// <unmanaged-short>unsigned int CustomRateCount</unmanaged-short>	
        public int CustomRateCount;
    }
    
    /// <summary>	
    /// <p>Specifies the capabilities of a Microsoft DirectX Video Acceleration High Definition (DXVA-HD) device.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>In DXVA-HD, the device stores state information for each input stream. These states persist between blits. With each blit, the application selects which streams to enable or disable. Disabling a stream does not affect the state information for that stream. </p><p>The <strong>MaxStreamStates</strong> member gives the maximum number of stream states that can be set by the application. The <strong>MaxInputStreams</strong> member gives the maximum number of streams that can be enabled during a blit. These two values can differ.</p><p>To set the state data for a stream, call <strong><see cref="SharpDX.MediaFoundation.DirectX.HDVideoProcessor.SetVideoProcessStreamState"/></strong>.</p>	
    /// </remarks>	
    /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPDEVCAPS']/*"/>	
    /// <msdn-id>dd318774</msdn-id>	
    /// <unmanaged>DXVAHD_VPDEVCAPS</unmanaged>	
    /// <unmanaged-short>DXVAHD_VPDEVCAPS</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 0 )]
    public  partial struct Vpdevcaps {	
        
        /// <summary>	
        /// <dd> <p>Specifies the device type, as a member of the <strong><see cref="SharpDX.MediaFoundation.DirectX.DeviceType"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPDEVCAPS::DeviceType']/*"/>	
        /// <msdn-id>dd318774</msdn-id>	
        /// <unmanaged>DXVAHD_DEVICE_TYPE DeviceType</unmanaged>	
        /// <unmanaged-short>DXVAHD_DEVICE_TYPE DeviceType</unmanaged-short>	
        public SharpDX.MediaFoundation.DirectX.DeviceType DeviceType;
        
        /// <summary>	
        /// <dd> <p>A bitwise <strong>OR</strong> of zero or more flags from the <strong><see cref="SharpDX.MediaFoundation.DirectX.DeviceCaps"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPDEVCAPS::DeviceCaps']/*"/>	
        /// <msdn-id>dd318774</msdn-id>	
        /// <unmanaged>unsigned int DeviceCaps</unmanaged>	
        /// <unmanaged-short>unsigned int DeviceCaps</unmanaged-short>	
        public int DeviceCaps;
        
        /// <summary>	
        /// <dd> <p>A bitwise <strong>OR</strong> of zero or more flags from the <strong><see cref="SharpDX.MediaFoundation.DirectX.FeatureCaps"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPDEVCAPS::FeatureCaps']/*"/>	
        /// <msdn-id>dd318774</msdn-id>	
        /// <unmanaged>unsigned int FeatureCaps</unmanaged>	
        /// <unmanaged-short>unsigned int FeatureCaps</unmanaged-short>	
        public int FeatureCaps;
        
        /// <summary>	
        /// <dd> <p>A bitwise <strong>OR</strong> of zero or more flags from the <strong><see cref="SharpDX.MediaFoundation.DirectX.FilterCaps"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPDEVCAPS::FilterCaps']/*"/>	
        /// <msdn-id>dd318774</msdn-id>	
        /// <unmanaged>unsigned int FilterCaps</unmanaged>	
        /// <unmanaged-short>unsigned int FilterCaps</unmanaged-short>	
        public int FilterCaps;
        
        /// <summary>	
        /// <dd> <p>A bitwise <strong>OR</strong> of zero or more flags from the <strong><see cref="SharpDX.MediaFoundation.DirectX.InputFormatCaps"/></strong> enumeration.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPDEVCAPS::InputFormatCaps']/*"/>	
        /// <msdn-id>dd318774</msdn-id>	
        /// <unmanaged>unsigned int InputFormatCaps</unmanaged>	
        /// <unmanaged-short>unsigned int InputFormatCaps</unmanaged-short>	
        public int InputFormatCaps;
        
        /// <summary>	
        /// <dd> <p>The memory pool that is required for the input video surfaces.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPDEVCAPS::InputPool']/*"/>	
        /// <msdn-id>dd318774</msdn-id>	
        /// <unmanaged>D3DPOOL InputPool</unmanaged>	
        /// <unmanaged-short>D3DPOOL InputPool</unmanaged-short>	
        public SharpDX.Direct3D9.Pool InputPool;
        
        /// <summary>	
        /// <dd> <p>The number of supported output formats. To get the list of output formats, call the <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorOutputFormats"/></strong> method.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPDEVCAPS::OutputFormatCount']/*"/>	
        /// <msdn-id>dd318774</msdn-id>	
        /// <unmanaged>unsigned int OutputFormatCount</unmanaged>	
        /// <unmanaged-short>unsigned int OutputFormatCount</unmanaged-short>	
        public int OutputFormatCount;
        
        /// <summary>	
        /// <dd> <p>The number of supported input formats. To get the list of input formats, call the <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorInputFormats"/></strong> method.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPDEVCAPS::InputFormatCount']/*"/>	
        /// <msdn-id>dd318774</msdn-id>	
        /// <unmanaged>unsigned int InputFormatCount</unmanaged>	
        /// <unmanaged-short>unsigned int InputFormatCount</unmanaged-short>	
        public int InputFormatCount;
        
        /// <summary>	
        /// <dd> <p>The number of video processors. Each video processor represents a  distinct set of processing capabilities. To get the capabilities of each video processor, call the <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.GetVideoProcessorCaps"/></strong> method. To create a video processor, call the <strong><see cref="SharpDX.MediaFoundation.DirectX.HDDevice.CreateVideoProcessor"/></strong> method. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPDEVCAPS::VideoProcessorCount']/*"/>	
        /// <msdn-id>dd318774</msdn-id>	
        /// <unmanaged>unsigned int VideoProcessorCount</unmanaged>	
        /// <unmanaged-short>unsigned int VideoProcessorCount</unmanaged-short>	
        public int VideoProcessorCount;
        
        /// <summary>	
        /// <dd> <p>The maximum number of input streams that can be enabled at the same time.</p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPDEVCAPS::MaxInputStreams']/*"/>	
        /// <msdn-id>dd318774</msdn-id>	
        /// <unmanaged>unsigned int MaxInputStreams</unmanaged>	
        /// <unmanaged-short>unsigned int MaxInputStreams</unmanaged-short>	
        public int MaxInputStreams;
        
        /// <summary>	
        /// <dd> <p>The maximum number of input streams for which the device can store state data. </p> </dd>	
        /// </summary>	
        /// <include file='..\..\Documentation\CodeComments.xml' path="/comments/comment[@id='DXVAHD_VPDEVCAPS::MaxStreamStates']/*"/>	
        /// <msdn-id>dd318774</msdn-id>	
        /// <unmanaged>unsigned int MaxStreamStates</unmanaged>	
        /// <unmanaged-short>unsigned int MaxStreamStates</unmanaged-short>	
        public int MaxStreamStates;
    }
}
#endif